swappiness 参数控制内核将进程从物理内存移出到交换磁盘上的趋势。默认设置是什么以及如何配置它以提高整体性能?
答案1
您可以在一个中设置这个值虚拟的file/proc/sys/vm/swappiness
提到的值将决定如何使用交换空间,下面是这些值及其意图。
vm.swappiness = 0 # Swap is disabled. In earlier versions, this meant that the kernel would swap only to avoid an out of memory condition, but in later versions this is achieved by setting to 1.
vm.swappiness = 1 # Kernel version 3.5 and over, as well as kernel version 2.6.32-303 and over: Minimum amount of swapping without disabling it entirely.
vm.swappiness = 10 # This value is sometimes recommended to improve performance when sufficient memory exists in a system, this value *10* could be considered for the performance being expected.
vm.swappiness = 60 # The default value.
vm.swappiness = 100 # The kernel will swap aggressively.
虽然实际上也取决于需要,但如果可用的物理内存足够,则可能不需要很大的交换空间,通俗地说就不需要更改 的默认值60
。
答案2
Linux 内核提供了一个可调整的设置来控制交换
$ cat /proc/sys/vm/swappiness
60
以 root 身份打开/etc/sysctl.conf
。然后,更改或添加此行到文件中:
vm.swappiness = 10
要暂时更改交换值,请尝试以下命令:
$ echo 50 > /proc/sys/vm/swappiness
答案3
在 RedHat/CentOS 中,默认值为 60。
“为了提高性能”是一个非常宽泛的术语。您想提高什么性能?
您有内存不足的问题吗?
当仍有可用内存/缓存内存时,您的系统是否会进行交换?
在 Linux 中,空闲 RAM = 浪费的 RAM,因此几乎所有空闲内存都用于磁盘缓存。
在 swappiness=60 的情况下,如果长时间没有访问内存中的页面,无论您有未分配的 RAM,它们都会被移至 SWAP。
将一些内存页移至 SWAP 不一定是坏事。
请详细说明您的问题以获得更详细的答案。