添加swap分区
先查看是否已经存在swap分区
swapon --show
没有结果表示不存在swap分区,有结果表示已经有一个swap分区了,一般来说一个系统不需要第二个swap分区。
创建1G大小的swap分区文件,并更改权限
#count=2048就是2G
dd if=/dev/zero of=/swapfile bs=1M count=1024
chmod 600 /swapfile
加载swap分区
mkswap /swapfile
swapon /swapfile
如果想要重启后swap分区扔自动加载
echo "/swapfile swap swap defaults 0 0" >> /etc/fstab
查看swap分区是否加载成功
swapon --show
一般来说如果是服务器,swappiness 不要太高,修改swappiness 的值
sysctl vm.swappiness=10
什么是swappiness
swappiness值(0-100),系统对swap分区的依赖程度,越高则越倾向于使用swap分区。
当然,高度依赖swap会造成物理内存远未使用完,就使用swap分区,我们知道swap分区性能远不如物理内存,这反而降低了系统性能,违背了我们创建swap分区的初衷。
我们希望在物理内存即将满荷时再使用swap,这就决定了swappiness值一般为10-60为宜,固态硬盘可以偏高些。
查看当前的swappiness数值:
cat /proc/sys/vm/swappiness
删除swap分区
先停止正在使用swap分区
swapoff /swapfile
删除swap分区
rm -rf /swapfile
删除/etc/fstab里的 /swapfile swap swap defaults 0 0
自己写的一键添加脚本
#!/bin/bash
if [ "$(swapon --show)" == "" ]; then
read -p "输入Swap大小(eg: 1024是1G): " sizeSwap
dd if=/dev/zero of=/swapfile bs=1M count=$sizeSwap
chmod 600 /swapfile
mkswap /swapfile
swapon /swapfile
echo "/swapfile swap swap defaults 0 0" >> /etc/fstab
if [ "$(swapon --show)" == "" ]; then
echo "添加失败,自己找原因"
else
sysctl vm.swappiness=10
fi
elif [ "$(swapon --show)" != "" ]; then
echo "已经存在Swap分区,请先删除!"
fi