为什么建议swappiness = 10?


9

在Ubuntu的SwapFaq中swappiness=10建议使用值。

为什么建议使用10而不是swappiness=0?

有10个优点还是0个缺点?



3
@Mitch这个问题是关于为什么人们建议减少交换性。这个问题是不同的。这是在问为什么交换率应该完全高于零。因此,这并不是在问为什么人们建议它这么低?有人问为什么建议如此之高。因为到目前为止(相当合理地)的答案与减少互换性的论点不同,所以我的答案在这里有些重叠,但最终我认为这些是具有单独答案的独立(尽管相关)问题。
— Eliah Kagan

@EliahKagantouché:)
— 米奇

Answers:


9

swappiness=0将等待交换,直到绝对必要。设置一个类似的中等值swappiness=10会使页面更容易地从内存交换到磁盘。这样可以避免一次大量交换的需要;这样的需求可能会带来烦人的延迟。

此外,通常某个进程会运行,但长时间不执行任何操作。许多守护程序(后台服务)以这种方式运行。您可能有一段时间未使用的后台应用程序。如今,某些应用程序被实现为多个进程,例如Chromium和Google Chrome,其中每个选项卡背后都有一个单独的进程(不是一个单独的线程,而是一个单独的进程)。设置swappiness为10之类的值可以使这些未被积极使用的后台任务交换到内存中,即使它们可能会塞满RAM。然后,当更积极地使用的进程需要分配更多的RAM时,它可以更快地完成分配。

总之,允许进程在必要时从RAM到磁盘的交换早于进程分配内存时通常会带来性能优势和较低的延迟。这是以换回流程所花费的时间为代价的。但这通常比活动使用的进程分配和释放内存的频率要少得多,因此通常值得进行权衡。


您还应该考虑驱动器的缓冲区。如果您的SSD带有512 MB的缓冲区和4 GB的RAM。您可以将其保留为10,而不必担心任何性能问题,因为任何程序几乎都可以立即分配大约1 GB的RAM。我有一个具有256 MB缓冲区和8 GB RAM的SSD,因此我也将其保留为10,因为它还可以保证快速分配约1 GB的内存,这是我很少需要的。
— stackount
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.