关于这个配置的具体机制,找到了两种解释:
- 当物理内存占用率高于(100 - vm.swappiness)%时,开始使用交换分区。
- vm.swappiness通过控制内存回收时,回收的匿名内存更多一些还是回收的文件缓存更多一些来达到这个效果。如果等于100,表示匿名内存和文件缓存将用同样的优先级进行回收,默认60表示文件缓存会优先被回收掉。
vm.min_free_kbytes
设置方法:
- echo 4194304 > /proc/sys/vm/min_free_kbytes,或
- sysctl -w vm.min_free_kbytes=4194304,或
- 编辑/etc/sysctl.conf文件,加入vm.min_free_kbytes=4194304
内存水位线
Linux系统中,剩余内存有3个水位线,从高到低记为high、low和min。并且有如下的关系:
min = vm.min_free_kbytes,low = min * 5 / 4,high = min * 3 / 2。
当剩余内存低于high值时,系统会认为内存