為什麼 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 完成時。

相關內容