1、安装swappiness
yum install procps
修改配置
vim /etc/sysctl.conf
在配置文件中添加参数
vm.swappiness=10
使生效
sysctl -p
如何确认swap分区是否开启
# free -mtotal used free shared buff/cache available
Mem: 971 129 678 7 163 668
Swap: 2047 0 2047#Swap 这一行全都是0 才表示 swpa分区没有开启
swap分区开启怎么关闭
# 关闭所有swap分区
swapoff -a
# 编辑配置文件防止 开机自启动
vim /etc/fstab
删除swap相关行 /mnt/swap swap swap defaults 0 0 这一行或者注释掉这一行# 查看是否成功
free -mtotal used free shared buff/cache available
Mem: 971 128 679 7 163 670
Swap: 0 0 0# 调整 swappiness 参数echo 0 > /proc/sys/vm/swappiness # 临时生效# 永久生效 修改 vm.swappiness 的修改为 0
vim /etc/sysctl.conf
vm.swappiness=0# 使配置生效,不需要重启
sysctl -p
如何开启swappiness?
参考文档:
https://www.cnblogs.com/hhsh/p/14123798.html
如将vm.swappiness设定为0,即不使用swap分区,默认云资源都为0
2、开启swappiness
2.1、新建swap分区文件夹
新建一个专门的文件用于swap分区,如下命令,执行时间稍微有点久,耐心等待
dd if=/dev/zero of=/swap bs=1024 count=8388616
注:此文件的大小是count的大小乘以bs大小,上面命令的大小是8GB
通过mkswap命令将上面新建出的文件做成swap分区
mkswap /swap
2.2、修改内核参数vm.swappiness
若vm.swappiness为0,则不启用swap。根据实际需要调整,swappiness参数值可设置范围在0到100之间。 此参数值越低,就会让Linux系统尽量少用swap分区,多用内存;参数值越高就是反过来,使内核更多的去使用swap空间。Ubuntu系统swappiness默认值为60,表示的含义可以这样来理解,当剩余物理内存低于40%(40=100-60)时,开始使用swap分区。CentOS系统此参数的默认值是30。设置为100可能会影响整体性能,如果内存充足,就可以将这个值设置很低,甚至为0,以避免系统进行swap而影响性能。
cat /proc/sys/vm/swappiness
sysctl -a | grep swappiness
vim /etc/sysctl.conf
vm.swappiness=30
保存后生效
sysctl -p
2.3、启用此交换分区的交换功能并开机挂载
swapon /swap
echo "/swap swap swap defaults 0 0" >> /etc/fstab
如果出现以下报错,大体意思是不安全权限0644,建议设置为0600
swapon: /swap: insecure permissions 0644, 0600 suggested.
此时,我们先关闭swap, 再执行设置0600的权限
swapoff /swap
sudo chmod 600 /swap
2.4、重新启动swap
重新启动swap即可
swapon /swap
echo "/swap swap swap defaults 0 0" >> /etc/fstab
3、查看使用情况
执行以下命令查看使用情况
free -m
如果物理内存使用超过设定的值,比如设置的30则需要物理内存使用超过70%时才会使用swap交换区,则可以看到swap分区情况,如下: