Linux:内存是空闲的,但是交换区却被使用了。为什么?

Linux:内存是空闲的,但是交换区却被使用了。为什么?

这是 Munin 的图表。

内存使用情况: http://koryagin.com/w/q/memory-day.png

换入/换出: http://koryagin.com/w/q/swap-day.png

为什么当 RAM 大小远大于程序使用的内存时,Linux 决定增加缓存并使用交换?

答案1

您的服务器可能有一些占用大量内存和/或不活跃的进程,其中包含许多不活跃的页面。Linux 内核倾向于将程序的不活跃部分交换出去,因为内存很可能更适合用作缓存。

如果您希望改变这种行为,请使用vm.swappinesssysctl 可调参数,但请注意,胜过内核开发人员/发行版维护人员并不那么容易。:-)

在交换高峰期间,您的服务器是否遇到了性能问题,或者您只是出于好奇而询问?

答案2

你应该尝试玩交换性参数。如您所见,当系统尝试增加文件缓存大小时,它开始进行交换,如果 swappines 不为 0,这是正常的。

相关内容