Swap空间的作用是当系统的物理内存不够用的时候,就需要将物理内存中的一部分空间释放出来,以供当前运行的程序使用。
增加swap分区
在确定了服务器所需要使用的内存后,需要增加1024M的swap空间
1、查看当前系统中是否已经启用swap分区
cat /proc/swaps
top
2、创建Swap分区
mkdir /data/swap
chmod 600 /data/swap #权限修改为600(非必须,只不过在后续的步骤会有警告提示)
dd if=/dev/zero of=/data/swap/swapfile bs=1M count=1024M #创建1024M的文件块,1G
dd if=/dev/zero of=/data/swap/swapfile bs=1M count=2048 #2G
dd if=/dev/zero of=/data/swap/swapfile bs=1M count=4096 #4G
dd if=/dev/zero of=/data/swap/swapfile bs=1M count=6144 #6G
dd if=/dev/zero of=/data/swap/swapfile bs=1M count=8192 #8G
dd if=/dev/zero of=/swapfile bs=1G count=2 #也是2G
注:此文件的大小是count的大小乘以bs大小
3、通过mkswap命令将上面新建出的文件格式化为swap分区
mkswap /data/swap/swapfile #创建swap文件
chmod 600 /data/swap/swapfile
4、查看内核参数vm.swappiness中的数值是否为0,如果为0则根据实际需要调整成30或者60
cat /proc/sys/vm/swappiness
sysctl -a | grep swappiness
sysctl -w vm.swappiness=60
注:若想永久修改,则编辑/etc/sysctl.conf文件
swappiness参数值说明
vm.swappiness = 0 仅在内存不足的情况下–当剩余空闲内存低于vm.min_free_kbytes limit时,使用交换空间。
vm.swappiness = 1 内核版本3.5及以上、Red Hat内核版本2.6.32-303及以上,进行最少量的交换,而不禁用交换。
vm.swappiness = 10 当系统存在足够内存时,推荐设置为该值以提高性能。
vm.swappiness = 60 默认值
vm.swappiness = 100 内核将积极的使用交换空间
#sysctl -a | grep vm.swappiness 查看swappiness
vm.swappiness = 30
echo 10 > /proc/sys/vm/swappiness #临时修改
sysctl -a | grep vm.swappiness
输出:vm.swappiness = 10
sysctl -w vm.swappiness=10 临时修改
输出:vm.swappiness = 10
cat /proc/sys/vm/swappiness
输出:10
在/etc/sysctl.conf中编辑,增加如下参数(如果存在的话)
vm.swappiness = 10 永久修改 需要重启
5、激活swap分区
swapon /data/swap/swapfile #激活swap文件
6、查看swap是否安装成功
swapon -s
或者:
cat /proc/swaps
7、开机自动启动
cp /etc/fstab /etc/fstab.bak #在最后添加下面代码
/data/swap/swapfile swap swap default 0 0
echo “/data/swap/swapfile swap swap defaults 0 0” >> /etc/fstab
:wq! #保存退出
8、重启
关闭SWAP分区
1、停止正在使用的swap分区
swapoff /data/swap
2、修改配置文件/etc/fstab,将需要删除的swap分区删除
3、删除swap分区:
rm /data/swap
4、查看swap还在不在
swapon -s #查看swap
cat /proc/swaps