为什么 Linux 没有使用所有可用内存

为什么 Linux 没有使用所有可用内存

我有一个 Linux VPS,有 256 MB 内存(free但只找到 248 MB)。不过我似乎还有 85 MB 可用,它正在交换 255 MB。这是为什么?

free -m

              total       used       free     shared    buffers     cached
Mem:           248        245          3          0         41         40
-/+ buffers/cache:        163         85
Swap:         1971        255       1716

答案1

您有 3MB 可用空间,而不是 85MB。由于您使用了 255MB 的交换空间,而只有 88MB 的内存可用于保存已交换的数据,因此内核别无选择,只能交换至少 167MB。之所以交换超过这个数量的内存,是因为内核认为如果将该内存用作磁盘缓存(技术上讲,用于页面缓存),而不是用于保存最近未访问的应用程序数据,性能会更好。

保留 3MB 可用空间的原因是为了在内存无法轻易释放或重新利用的情况下处理负载突发。例如,如果出现网络流量突发或磁盘 I/O 完成时。

相关内容