Linux cached過高問題


1、cached主要負責緩存文件使用, 日志文件過大造成cached區內存增大把內存占用完 .

Free中的buffer和cache:(它們都是占用內存):
buffer : 作為buffer cache的內存,是塊設備的讀寫緩沖區
cache: 作為page cache的內存, 文件系統的cache
如果 cache 的值很大,說明cache住的文件數很多。

Linux 內存管理做了很多精心的設計,除了對dentry進行緩存(用於VFS,加速文件路徑名到inode的轉換),還采取了兩種主要Cache方式:Buffer Cache和Page Cache,目的就是為了提升磁盤IO的性能。從低速的塊設備上讀取數據會暫時保存在內存中,即使數據在當時已經不再需要了,但在應用程序下一次訪問該數據時,它可以從內存中直接讀取,從而繞開低速的塊設備,從而提高系統的整體性能。而Linux會充分利用這些空閑的內存,設計思想是內存空閑還不如拿來多緩存一些數據,等下次程序再次訪問這些數據速度就快了,而如果程序要使用內存而系統中內存又不足時,這時不是使用交換分區,而是快速回收部分緩存,將它們留給用戶程序使用。

因此,可以看出,buffers/cached真是百益而無一害,真正的壞處可能讓用戶產生一種錯覺——Linux耗內存!其實不然,Linux並沒有吃掉你的內存,只要還未使用到交換分區,你的內存所剩無幾時,你應該感到慶幸,因為Linux 緩存了大量的數據,也許下一次你就從中受益!

2、手動釋放cached

To free pagecache:  echo 1 > /proc/sys/vm/drop_caches

To free dentries and inodes:  echo 2 > /proc/sys/vm/drop_caches

To free pagecache, dentries and inodes:  echo 3 > /proc/sys/vm/drop_caches


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM