在 Ubuntu 系统(以及大多数 Linux 系统)中,是否使用 swap 空间取决于以下两个主要因素:
1. 内存占用情况
当系统的 可用物理内存 减少到几乎无法满足应用需求时,内核会开始使用 swap 空间。
可用内存包括:
- 未分配的物理内存。
- 缓存和缓存回收可用的部分。
系统会优先释放缓存,以尽量避免使用 swap。
2. Swappiness 参数
swappiness
是 Linux 内核的一个配置参数,用于控制系统使用 swap 空间的倾向。
- 范围:
0-100
,值越大,越倾向于使用 swap。 - 默认值:大多数 Ubuntu 系统默认是
60
。
swappiness
的含义:
0
:除非内存耗尽,否则尽量不使用 swap。60
:当物理内存使用率达到 60% 左右时,开始逐步使用 swap。100
:尽可能多地使用 swap,即使物理内存充足。
如何查看和调整 swappiness
参数
查看当前 swappiness
值:
cat /proc/sys/vm/swappiness
临时调整 swappiness
值:
sudo sysctl vm.swappiness=10
永久修改 swappiness
值:
编辑 /etc/sysctl.conf
文件:
sudo nano /etc/sysctl.conf
添加或修改以下行:
vm.swappiness=10
然后使配置生效:
sudo sysctl -p
总结
通常情况下:
- 当可用物理内存较少(例如 10-20%)时,系统可能开始使用 swap。
- 如果希望减少 swap 的使用,可以降低
swappiness
值,例如设置为10
。