我该如何配置swappiness?

Modified on: Sat, 09 Jun 2018 02:30:53 +0800

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

最佳答案

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

swypeiness设置表示除非绝对必要(内存不足),否则将避免使用磁盘,而swypeiness设置为100表示程序将几乎可以立即换到磁盘。

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

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

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

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
  

总计为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=100

    • 告诉内核积极地将进程从物理内存中交换出来并将它们移到交换缓存中。

请参阅http://en.wikipedia.org/wiki/Swappiness

Ubuntu中的默认设置是swappiness=60。减少swappiness的默认值可能会提高典型Ubuntu桌面安装的整体性能。建议使用swappiness=10的值,但可以随意进行试验。


实施例

开始在91%

使用互换


正如我配置了我的系统和vm使用90%的RAM,90%没有交换。

之后我开了一些应用程序,比如Firefox&快门,它开始交换,因为RAM使用率高于90%


相关问答

添加新评论