Linux
rhel + 為什麼不利用交換記憶體
我們有 7.6 版的 rhel 伺服器
我們配置了交換,我們可以從下面看到交換大小
free -g total used free shared buff/cache available Mem: 38 32 0 0 4 4 Swap: 23 0 23
我們還將 vm.swappiness 配置如下
sysctl -a | grep swap vm.swappiness = 95
據我了解,當可用記憶體很少 GIGA 可用記憶體為 1-5G 時
然後應該觸發交換,我們期望交換總記憶體例如 5-10G
但是這種情況發生了
那麼我們還應該在我的伺服器上檢查什麼?
也許其他一些禁用交換的配置?
免費時更新
free -g total used free shared buff/cache available Mem: 11 8 0 0 2 2 Swap: 23 0 23 # free total used free shared buff/cache available Mem: 11828240 8810264 161388 24696 2856588 2555472 Swap: 24575992 5120 24570872
當
vm.swappiness
設置為 100 時,頁面記憶體和交換在處理記憶體壓力時被同等考慮。小於 100 的值告訴核心認為交換比頁面記憶體更昂貴;因此,當它需要釋放頁面時,它會嘗試從頁面記憶體中釋放頁面,而不是使用交換。價值越低,掉期成本越高。(計算比我在這裡的解釋更複雜,但這應該足夠接近以理解這裡發生了什麼。)在您的情況下,您已將交換配置為比頁面記憶體稍貴一些。您所有的頁面記憶體使用都是可回收的(在舍入誤差範圍內):您的“可用”值等於您的“buff/cache”值。因此,任何記憶體壓力都會導致頁面記憶體被回收,而不是使用交換。
您的伺服器沒有任何問題,它的行為符合預期。從長遠來看,您會看到交換使用量上升。如果您想看到更多使用,請設置
vm.swappiness
為 100。