1、关闭 swappiness
查看 swappiness 的当前值:
bash
sysctl vm.swappiness
cat /proc/sys/vm/swappiness
cat /sys/fs/cgroup/memory/memory.swappiness
永久关闭:
echo vm.swappiness = 0 >> /etc/sysctl.conf
临时关闭:
bash
sysctl vm.swappiness=0
echo 0 >
-w
选项加不加似乎都行。该选项的解释如下:
-w, --write enable writing a value to variable
如想配置其他值,比如 1
,只需要将上面的命令中的 0
替换掉即可。
2、swappiness 简介
此控件用于将交换(swapping)和文件系统分页(paging)的粗略相对 IO 成本定义为 0
到 200
之间的值。该值控制内核交换内存页的积极性。数值越高,越积极;数值越低,就越不积极。 100
时,VM 假设同等的 IO 成本,并且因此将向页面高速缓存和交换支持(swap-backed)页面同等地施加内存压力;越低的值表示 交换(swap) IO 越昂贵,越高的值表示越便宜。
请记住,在内存压力下的文件系统 IO 模式往往比 swap 的随机 IO 更高效。最佳值需要实验,也取决于工作负载。
默认值为 60
。CentOS 为 30
。
对于内存中的 swap,如 zram
或 zswap
, 以及在比文件系统更快的设备上进行交换的混合部署,可以考虑超过 100
的值。例如,如果针对交换设备的随机 IO 平均比来自文件系统的 IO 快2倍,则交换性应为 133(x+2x=200,2x=133.33)。
0
时,内核将不会启动交换,直到可用页面和文件备份页面的数量小于区域中的高水位线。
更多参考: