13.11. 调整虚拟内存(VM)可调项
虚拟内存(VM)可调项是控制系统如何管理内存的内核参数,包括其使用交换空间的方式。根据工作负载调整这些设置可能会影响系统性能。
vm.swappiness 参数控制内核倾向于将进程移出物理内存并进入交换空间。该值是一个百分比,范围从 0 到 100:
- 更高的值(如 60 或 100) :内核会将 进程交换到更积极地进行磁盘。这可以为其他用途释放物理内存(如文件系统缓存),但如果频繁需要交换的进程,则可能会增加 I/O 操作和延迟。
- 较低值(如 0 或 10) :内核将尝试避免交换进程, 并尽可能将进程保留在物理内存中。这通常适用于具有快速 I/O 和大量 RAM 的桌面系统或服务器。
以下其他相关的虚拟机可调项可能会影响交换行为:
- vm.dirty_ratio :在内核开始主动写入前,可以填充"dirty"页面(未修改但还没有写入磁盘的内存页面)的系统内存百分比。
-
vm.dirty_background_ratio :在后台内核进程开始写出前可填充脏页面的系统内存百分比。这是一个比
vm.dirty_ratio更积极的操作。
流程
查看当前值:
$ cat /proc/sys/vm/swappiness默认值为 60。
临时将值设置为 10 :
# sysctl vm.swappiness=10通过编辑
/etc/sysctl.d/99-sysctl.conf或类似的配置文件,将该值永久设置为在重启后保留:vm.swappiness = 10应用更改:
# sysctl -p