我需要逐步,简单且容易的方法来配置swappiness。
sudo sysctl -p
以从sysctl.conf文件中加载新的swappiness值,否则更改仅在下次重新启动时适用。
我需要逐步,简单且容易的方法来配置swappiness。
sudo sysctl -p
以从sysctl.conf文件中加载新的swappiness值,否则更改仅在下次重新启动时适用。
Answers:
Linux内核提供了一个可调整的设置,该设置控制交换文件的使用频率,称为swappiness。
交换设置为零表示除非绝对必要(除非内存不足),否则将避免使用磁盘,而交换设置为100表示将几乎立即将程序交换到磁盘。
Ubuntu系统的默认值为60,这意味着如果内存使用量约为我的RAM的一半,则交换文件将被相当频繁地使用。您可以通过运行以下命令检查自己系统的swappiness值:
one@onezero:~$ cat /proc/sys/vm/swappiness
60
因为我有4 GB的RAM,所以我希望将其调低到10或15。然后,仅当我的RAM使用率为80%或90%时才使用交换文件。要更改系统交换值,请/etc/sysctl.conf
以root身份打开。然后,将以下行更改或添加到文件中:
vm.swappiness = 10
重新启动以使更改生效。
您还可以在系统仍使用以下命令运行时更改该值:
sysctl vm.swappiness=10
您还可以通过运行swapoff -a
然后swapon -a
以root用户身份而不是重新启动来清除交换,以达到相同的效果。
要计算您的掉期公式:
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)的内存时,它将开始使用swap。
swappiness参数控制内核将进程移出物理内存并移入交换磁盘的趋势。因为磁盘要比RAM慢得多,所以如果进程过于主动地移出内存,则可能导致系统和应用程序的响应时间变慢。
swappiness
值可以在0到100之间。swappiness=0
:
swappiness=1
:
swappiness=100
:
参见http://en.wikipedia.org/wiki/Swappiness。
Ubuntu中的默认设置为swappiness=60
。降低swappiness的默认值可能会提高典型Ubuntu桌面安装的整体性能。swappiness=10
建议使用值,但随时可以尝试。
开始使用91%的交换:
当我将系统和虚拟机配置为使用90%的RAM时,在90%的内存中没有交换。
之后,我打开了诸如Firefox&Shutter之类的一些应用程序,由于RAM使用率超过90%,它开始交换。
sudo bash -c "echo 'vm.swappiness = 15' >> /etc/sysctl.conf"