我该如何配置swappiness?

我需要一步一步,简单易用的方法来配置swappiness。

Linux内核提供了一个可调整的设置,可以控制交换文件的使用频率,称为swappiness。

swappiness设置为零意味着除非绝对必要(内存不足),否则将避免磁盘,而swappiness设置为100意味着程序几乎会立即交换到磁盘。

Ubuntu系统默认值为60,这意味着如果内存使用量大约是我的RAM的一半,交换文件将被频繁使用。 您可以通过运行以下命令检查自己系统的swappiness值:

 one@onezero:~$ cat /proc/sys/vm/swappiness 60 

由于我有4 GB的RAM,我想将其降低到10或15.交换文件将仅在我的RAM使用率约为8090 %时使用。 要更改系统swappiness值,请以root身份打开/etc/sysctl.conf 。 然后,将此行更改或添加到文件中:

 vm.swappiness = 10 

重新启动以使更改生效。

您还可以在系统仍在运行时更改值:

 sysctl vm.swappiness=10 

您也可以通过运行swapoff -a然后以root身份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 

所以总数是3950/100 = 39.5 * 10 = 395

所以它的意思是,当剩下10% (395 MB)的ram时,它将开始使用swap。


救命 。 Ubuntu。 交换

什么是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=10swappiness=10 ,但可以随意进行实验。


开始使用91%的掉期:

在此处输入图像描述 由于我已经将我的系统和vm配置为以90%的速度使用RAM,因此90%没有交换。

之后我打开了一些像Firefox和Shutter这样的应用程序,它开始交换,因为RAM使用率超过90%