Linux:内存是免费的,但使用交换。 为什么?

这里是Munin的图表。

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

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

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

您的服务器可能有一些内存占用和/或不活动的进程有很多不活动的页面。 Linux内核倾向于将非活动部分的程序交换为交换,因为内存很可能被更好地用作高速caching。

如果你想改变这种行为,请使用vm.swappiness sysctl可调参数,但要警告,超越内核开发者/发行版维护者并不那么容易。 🙂

在交换高峰时期,您的服务器上是否存在性能问题,或者是出于好奇?

你应该尝试玩swappiness参数。 正如你可以看到你的系统开始交换,当它试图增加文件caching大小,这是正常的,如果swappines不是0。