Linux 主機的交換空間已使用 100%,可用 RAM 為 60% - 這樣正常嗎?

Linux 主機的交換空間已使用 100%,可用 RAM 為 60% - 這樣正常嗎?

最近我看到一個盒子(實際上是Web 伺服器虛擬機器),其交換區中有0(零)位元組未使用,而可用ram(不是免費的,但空閒+緩衝區+快取的總和)為總數的60%虛擬機器記憶體。以前從未見過,所以想知道這是否是好的配置(對於盒子和應用程式)。

虛擬機器的管理員告訴我,他認為這是完全正常的,這是他調整盒子的常用方法。

他的想法是,如果 box 有很多冷內存頁面,內核會將其清理出來以釋放“真實”內存頁面,以便它可以用於緩存資料。

對我來說,如果我們喜歡快速盒子,我曾經知道交換是最後使用的東西。因此,我曾經將交換性設置為較低的值(因此內核不喜歡交換頁面),但這個人的方法是交換出與交換空間一樣多的數據,從而擁有更多的快取。是的,他說,核心也可以快取交換的頁面,所以保持交換空閒是沒有好處的。

請讓我輕鬆一下:VM Seap 是否應該以最佳方式使用,並且以這種方式釋放 RAM,以便可以更有效地使用核心磁碟快取?

確切地說,目前有:1 Gb 交換空間(100% 使用),VM 有 32 Gb 內存,可用內存為 13 Gb。

答案1

完全使用少量交換(1GiB 與 32GiB RAM 相比很小)就可以了。這意味著正如虛擬機管理員所描述的那樣:考慮到RAM 的可用性,最終進入交換區的任何內容都不會被使用,最好將其保留在那裡並使用相應的物理內存來實現更緊迫的目的- 無論是活動工作負載,還是磁碟快取。

過多的交換使用僅在交換量很大,或者由於內存壓力而進行頁面交換時才令人擔憂,更重要的是如果交換活動很重要,IEifvmstat顯示頁面一直在換入換出。這表示系統正在崩潰,花時間逐出頁面,結果卻不得不再次將它們交換回來;當 RAM 量對於系統工作負載而言太小時,就會發生這種情況。

我正在編寫此內容的系統的交換空間稍多,並且與您的虛擬機器的情況類似:

$ free -m
              total        used        free      shared  buff/cache   available
Mem:          32054       19405        1098        2365       11550        9827
Swap:          6410        6410           0

不過,互動表現很好,並且vmstat沒有顯示交換活動。

相關內容