free -h
使用dd命令创建名为swapfile 的swap交换文件(文件名和目录任意):
dd if=/dev/zero of=/var/swapfile bs=1024 count=4194304
dev/zero是Linux的一种特殊字符设备(输入设备),可以用来创建一个指定长度用于初始化的空文件,如临时交换文件,该设备无穷尽地提供0,可以提供任何你需要的数目。
bs=1024 :单位数据块(block)同时读入/输出的块字节大小为1024 个字节即1KB,bs(即block size)。
count = 4194304 表示的是4G(注意系统可能不会显示4G)
具体计算公式为:1KB * 4194304 =1KB 1024(k)1024*4 = 4194304 =4G
建议不要太多,(如果你个人学习,虚拟机又是在ssd中可以设置多点)
执行完命令后,会进行4G读写操作,所以会有一些卡顿,小伙伴耐心等待
mkswap /var/swapfile
swapon /var/swapfile
执行以上命令可能会出现:“不安全的权限 0644,建议使用 0600”类似提示,实际上已经激活了,可以忽略提示,也可以听从系统的建议修改下权限:
chmod -R 0600 /var/swapfile
free -h
echo "/var/swapfile swap swap defaults 0 0" >> /etc/fstab
top
我们能够看到,交换空间已经成功被使用
更改Swap配置
一般默认的情况,当我们开启交换虚拟内存空间后,默认好像是当内存使用百分50的时候,就会开始使用交换空间
答案就是:可以通过swappiness值进行管理,swappiness表示系统对Swap分区的依赖程度,范围是0~100,数值越大,依赖程度越高,也就是越高越会使用Swap分区。
所以,一般设置 10 ~50 左右。
SSD的话,那么这个值可以稍微大一些。默认centos7为30
下面我们查看当前的swappiness数值:
cat /proc/sys/vm/swappiness
修改swappiness值,这里以10为例:
sysctl vm.swappiness=10
设置永久有效,重启系统后生效
echo "vm.swappiness = 10" >> /etc/sysctl.conf