这是 Munin 的图表。
内存使用情况: http://koryagin.com/w/q/memory-day.png
换入/换出: http://koryagin.com/w/q/swap-day.png
为什么当 RAM 大小远大于程序使用的内存时,Linux 决定增加缓存并使用交换?
答案1
您的服务器可能有一些占用大量内存和/或不活跃的进程,其中包含许多不活跃的页面。Linux 内核倾向于将程序的不活跃部分交换出去,因为内存很可能更适合用作缓存。
如果您希望改变这种行为,请使用vm.swappiness
sysctl 可调参数,但请注意,胜过内核开发人员/发行版维护人员并不那么容易。:-)
在交换高峰期间,您的服务器是否遇到了性能问题,或者您只是出于好奇而询问?
答案2
你应该尝试玩交换性参数。如您所见,当系统尝试增加文件缓存大小时,它开始进行交换,如果 swappines 不为 0,这是正常的。