问题描述
我需要一个step-by-step,简单而简单的方法来配置swappiness。
最佳解决方案
Linux内核提供了一个可调整的设置,用于控制交换文件的使用频率,称为swappiness
将swappiness设置为零意味着除非绝对必要(内存不足),否则磁盘将被避免,而swappiness设置为100意味着程序将几乎立即交换到磁盘。
Ubuntu系统默认配置为60,这意味着如果内存使用量大约占我内存的一半,则交换文件将被相当频繁地使用。您可以运行以下命令来检查您自己的系统的swappiness值:
one@onezero:~$ cat /proc/sys/vm/swappiness
60
由于我有4 GB的RAM,因此我想将其降至10或15.只有当我的RAM使用率为80%或90%左右时才会使用交换文件。要更改系统swappiness值,请以root身份打开/etc/sysctl.conf
。然后,更改或添加此行到文件中:
vm.swappiness = 10
重新启动以使更改生效
您还可以在系统仍在运行时更改该值
sysctl vm.swappiness=10
您也可以通过以root身份运行swapoff -a
然后swapon -a
来清除交换,而不是重新启动以实现相同的效果。
计算你的交换公式
free -m (total) / 100 = A
A * 10
root@onezero:/home/one# free -m
total used free shared buffers cached
Mem: 3950 2262 1687 0 407 952
-/+ buffers/cache: 903 3047
Swap: 1953 0 1953
so total is 3950 / 100 = 39.5 * 10 = 395
所以这意味着当10%395 MB的ram离开时,它开始使用交换
Help . Ubuntu . Swap
什么是swappiness
swappiness参数控制内核将进程从物理内存移出交换磁盘的趋势。由于磁盘比RAM慢得多,如果进程太积极地移出内存,这可能会导致系统和应用程序的响应时间变慢。
。 swappiness的值可以在0到100之间
。 swappiness = 0:版本3.5及以上:禁用交换。 3.5之前:告诉内核尽可能避免将进程交换出物理内存。
。 swappiness = 1:版本3.5及以上:最小的swappiness,完全禁用它
。 swappiness = 100告诉内核主动将进程交换出物理内存并将其移至交换缓存
参见http://en.wikipedia.org/wiki/Swappiness
Ubuntu中的默认设置是swappiness = 60。减少swappiness的默认值可能会提高典型Ubuntu桌面安装的总体性能。值得推荐的是swappiness = 10,但可以随意试验。
以91%开始使用交换
由于我配置了我的系统& vm使用90%的内存。在90%没有交换
之后,我打开了一些应用程序,如Firefox&快门,由于内存使用而开始交换的时间超过90%