我有一个 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 完成时。