Linux

rhel + 為什麼不利用交換記憶體

  • October 17, 2020

我們有 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。

另請參閱為什麼 swappiness 不起作用?

引用自:https://unix.stackexchange.com/questions/614994