怎樣釋放linux的內存Cache, Buffer和Swap空間?

與任何操作系統一樣,Linux也實施有效的內存管理,甚至做的更好。但如果有程序蠶食內存,你想清理它,Linux提供一種有效的釋放高速緩存方法。

怎樣清理Linux緩存?

每一個Linux系統都有三種能在不中斷程序或服務的情況下釋放緩存的選擇。

1、只清理PageCache。

# sync; echo 1 > /proc/sys/vm/drop_caches

2、清理dentries和inodes。

# sync; echo 2 > /proc/sys/vm/drop_caches

3、清理PageCache, dentries和inodes。

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

下面對上述命令進行解釋。

“sync”能釋放文件系統緩沖區(buffer)。命令用“;”分隔繼續運行。在執行下一個順序命令前,命令行等待每一個命令結束。如內核文件所提,寫入drop_cache能在不殺死應用或服務的情況下清理緩存(cache),命令“echo”做的工作就是寫入文件。

如果需要清理磁盤緩存,第一個命令對企業和生產最安全,因為“…echo 1 > ….”只清理PageCache。除非知道自己在做什么,否則不建議在生產過程中用上面提到的第三種命令“…echo3 >”,因為它會清理PageCache,dentries和inodes。

釋放Linux內核使用的緩沖區(Buffer)和緩沖(Cache)好不好?

在應用不同設置并想檢查時,你可能需要清理緩沖緩存。按照上述說明釋放緩存不需要重啟系統,因此沒有停機時間。

Linux被設計成在檢索磁盤之前首先查看磁盤緩存。如果能在緩存找到了資源,請求不會到達磁盤。如果清除了緩存,系統就會到磁盤尋找資源。此外,在緩存清理時,系統會放慢幾秒鐘,因為系統請求的每一個資源都需要重新加載進入磁盤緩存。

Related Posts