Linux

清除/刷新記憶體記憶體

  • October 7, 2012

我有一個 6GB RAM 的小型 VPS 託管幾個網站。

最近我注意到我的記憶體記憶體非常大 - 見下文:

   Cpu(s):  0.1%us,  0.1%sy,  0.0%ni, 99.1%id,  0.0%wa,  0.2%hi,  0.4%si,  0.0%st
   Mem:   6113256k total,  5949620k used,   163636k free,   398584k buffers
   Swap:  1048564k total,      104k used,  1048460k free,  3586468k cached

在調查是否有某種方法可以將其刷新或清除後,我偶然發現了一個命令:

   sync; echo 3 > /proc/sys/vm/drop_caches

我讀到將其添加到 chron-task/job 可能很有用。是否推薦這種方法,或者這會導致潛在的問題?

我唯一擔心的是我在 Memcached 上使用了一個 Magento 安裝 - 這會對它產生任何負面影響嗎?

我當然不是專業人士,因此我非常感謝一些專家的建議。

PS:我的 VPS 在 CentOS 5 x64 上執行,我安裝了 WHM + NGINX。

刪除記憶體可能會影響伺服器的性能,因為它必須在每次記憶體刪除後將頻繁訪問的數據重新讀回記憶體。

沒有真正的理由放棄你的記憶體。對於 Linux 核心,用於記憶體的記憶體基本上是免費的,並且會在應用程序需要時傳遞給它們。看看這個網站了解更多資訊。

關於儲存在 memcached 中的數據 - 這可以避免刪除 page/dentries/inode 記憶體的影響。

如前所述,除非您有非常令人信服的理由,否則刪除記憶體沒有什麼意義。如果您沒有看到任何性能問題,請保持原樣。

如果您是好奇類型,那麼您可以調整參數 vm.vfs_cache_pressure。預設值為 100,這意味著與回收交換相比,核心將嘗試以公平的速率回收記憶體。增加該值會導致記憶體記憶體被更快地回收,而減少它會導致更快地回收交換,但請記住,這正是核心清除記憶體或交換的積極性的方式。實際結果因環境而異。

除了回顯 3,您還可以回顯 1 或 2。如果我沒記錯的話,回顯 1 將清除頁面記憶體,而 2 將清除 dentry 和 inode 記憶體。3 將清除 pagecache、dentry 和 inode 記憶體。

引用自:https://serverfault.com/questions/435635