Mongodb
RHEL 7.4,繁重的工作負載和 SWAP 使用
這可能不是正確的板,但因為我是 DBA,所以我會在這裡問。
我有幾個 RHEL 7.4 伺服器,混合執行 MariaDB(10.1、10.2)和 MongoDB(3.4)。RHEL 7.3 也出現了問題。
所有這些伺服器都有 256Gb 的記憶體和本地 SSD 陣列儲存,即使在繁重的工作負載下,任何時候最高的活動記憶體佔用空間都小於 100Gb。我已經對此進行了一段時間的分析:
在這些伺服器中的每一個上,即使總是有大量可用記憶體,系統也會逐漸進入交換狀態。我已嘗試將 vm.swappiness 值設置為 1,但仍會發生增量的交換跳躍。
這是否發生在其他人身上?有誰知道,有大量可用記憶體,如果將 swappiness 設置為 0 會產生不良影響?
謝謝
如果您有 8GB 交換、256 GB 物理記憶體和swappiness=1,記憶體使用量接近 72Gb,則交換操作接近 700MB (72GB * 1%) 是可以接受的,那麼您看到的 100MB 交換使用量是非常正常的。
確保每天 1TB 的數據負載不會耗盡您的物理記憶體,並且您可以將swappiness更改為 0 而不會產生副作用。
但是您的設置中的掉期率是否很低。你真的需要避免交換嗎?
別擔心。除非記憶體從交換中換回,否則沒有問題。你可以減少
vm.swappiness
更多,減少到 0,但如果系統仍然在沒有記憶體壓力的情況下進行交換,那隻是 Linux 的怪事。同樣,除非您看到表明記憶體已換入的高磁碟活動,否則請不要擔心。