环境说明:
系统:Centos 7
首先查看当前的内存和swap 空间大小
默认单位为k, -m 单位为M
free -m
查看swap信息,包括文件和分区的详细信息
swapon -s
# 或者
cat /proc/swaps
如果没有虚拟内存,我们就需要手动添加交换分区。
注意,OPENVZ架构的VPS是不支持手动添加交换分区的。
添加交换空间有两种选择:添加一个交换分区或添加一个交换文件。推荐你添加一个交换分区;不过,若你没有
多少空闲空间可用, 则添加交换文件。
查看vps的虚拟架构
现在市面上的vps虚拟技术有许多种,比如Openvz、Xen、VMware vSphere、Hyper-V、KVM及Xen的HVM与PV
等,在Xen中pv是半虚拟化,hvm是全虚拟化,pv只能用于linux内核的系统,hvm可以虚拟所有常见操作系统
(linux+windows),理论效率比pv略低,另外hvm需要cpu虚拟化指令支持,pv无此要求,而Openvz是一个类似于
linux-VServer的操作系级全虚拟化解决方案。
安装依赖
Centos系统
yum install virt-what
Debian/Ubuntu系统
apt-get install virt-what
查看架构
virt-what
增加swap交换文件
使用dd命令创建一个swap交换文件
# 建立一个/home/swap的分区文件,大小为2G。
dd if=/dev/zero of=/home/swap bs=1024 count=2048k
制作为swap格式文件
mkswap /home/swap
再用swapon命令把这个文件分区挂载swap分区
swapon /home/swap
我们用free -m命令看一下,发现已经有交换分区了。
但是重启系统后,swap分区又变成0了。
为防止重启后swap分区变成0,要修改/etc/fstab文件
vi /etc/fstab
# 或者
vim /etc/fstab
# 在文件末尾(最后一行)加上 这样就算重启系统,swap分区还是有值。
/home/swap swap swap defaults 0 0
调整 swappiness
swappiness的值的大小对如何使用swap分区是有着很大的联系的。swappiness=0的时候表示最大限度使用物理内存,然后才是 swap空间,swappiness=100的时候表示积极的使用swap分区,并且把内存上的数据及时的搬运到swap空间里面。一般linux的默认设置为60,也就是说内存在使用到100-60=40%的时候,就开始出现有交换分区的使用。
# 查看swappiness的值
cat /proc/sys/vm/swappiness
# 临时修改
sysctl vm.swappiness=10
# 永久修改 添加vm.swappiness=60
vim /etc/sysctl.conf
# 激活设置
sysctl -p
删除swap交换文件
删除操作是基于上述的添加方式,可根据实际情况修改
先停止swap分区
/sbin/swapoff /home/swap
删除swap分区文件
rm -rf /home/swap
删除自动挂载配置命令
vim /etc/fstab # 删除 /home/swap swap swap default 0 0
使用分区来做SWAP(虚拟内存)
使用fdisk来创建交换分区( /dev/sdb2 是创建的交换分区)
fdisk /dev/sdb2
使用 mkswap 命令来设置交换分区:
mkswap /dev/sdb2
启用交换分区
swapon /dev/sdb2
写入/etc/fstab,以便在引导时启用
vi /etc/fstab
# 或者
vim /etc/fstab
/dev/sdb2 swap swap defaults 0 0
删除交换分区
删除操作是基于上述的添加方式,可根据实际情况修改
先停止swap分区
/sbin/swapoff /dev/sdb2
删除自动挂载配置命令
vi /etc/fstab
# 或者
vim /etc/fstab
# 删除 /dev/sdb2 swap swap defaults 0 0