检查是否存在Swap分区
输入swapon -s,如果没有任何的信息显示,也就是还没有划分Swap分区。
检查文件系统
如果没有创建Swap分区,再看下硬盘还剩下多少空间可以使用,使用df命令查看。因为我先创建了1G的Swap分区,还是报错,于是我选择创建一个2GB大小的Swap分区。
创建Swap分区文件
创建swap文件。
dd if=/dev/zero of=/swapfile bs=2048 count=1M
该命令将创建一个大小为2GB,文件名为swapfile的Swap分区文件,of=/swapfile参数指定了文件的创建位置和文件名;bs=2048指定了文件的大小,count=1M代表单位。
格式化swap分区
mkswap /swapfile
激活swap分区
swapon /swapfile
查询swap分区
swapon -s
你会发现在重启之后Swap分区就没了,那是因为上面的设置是一次性的,想要一直启动Swap分区,可以编辑fstab文件。
nano /etc/fstab
在最后一行添加上下面一条:
/swapfile swap swap defaults 0 0
添加成功后给swap赋予相关权限:
chown root:root /swapfile
chmod 0600 /swapfile
配置swappiness
实际上,并不是等所有的物理内存都消耗完毕之后,才去使用swap的空间,什么时候使用是由swappiness 参数值控制。
cat /proc/sys/vm/swappiness
默认值是60,swappiness=0 的时候表示最大限度使用物理内存,然后才是Swap空间;swappiness=100 的时候表示积极的使用Swap分区,并且把内存上的数据及时的搬运到swap空间里面。
临时性修改
sysctl vm.swappiness=10
cat /proc/sys/vm/swappiness
这里我们的修改已经生效,但是如果我们重启了系统,又会变成60。
永久修改
在/etc/sysctl.conf文件里添加如下参数:vm.swappiness=10,保存重启就可以了。