swappiness 的值的大小对如何使用 swap 分区是有着很大的联系的。
swappiness=0 的时候表示最大限度使用物理内存,然后才是 swap 空间,swappiness=100 的时候表示积极的使用 swap 分区,并且把内存上的数据及时的搬运到 swap 空间里面。
当该参数 = 0,表示只要有可能就尽力避免交换进程移出物理内存; 该 参数 =100,这告诉内核疯狂的将数据移出物理内存移到 swap 缓存中。
这个值只是一个 Linux 在判断是否交换内存 (swap) 的一个“倾向”参考值,而并不是说,设置为 0 以后,Linux 就完全不会使用内存交换空间
然后 ubuntu 和 centos 一般默认都是 60,就是当内存使用 =(100%-60%)* 内存总量
cat /proc/sys/vm/swappiness
60
所以才会出现我们上面那种情况,这个时候我们只需要调整这个值即可,
sysctl vm.swappiness=10 #临时修改
echo "vm.swappiness=10" >> /etc/sysctl.conf #永久修改
sysctl -p #生效
改完之后就会使用物理内存了,刚才卡的情况也解决了
微信扫描下方的二维码阅读本文
正文完