日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

Linux内存(手动释放cache)

發布時間:2025/7/25 linux 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Linux内存(手动释放cache) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

項目的擴容申請了一臺機器,到手之后看一下機器的指標,看到內存使用情況是這樣的。

1、查看內存

free

$ free -htotal used free shared buffers cached Mem: 125G 89G 36G 92K 212M 74G -/+ buffers/cache: 14G 111G Swap: 7.5G 1.8G 5.6G

?cat /proc/meminfo?

如果你想得到更加相近的信息可以使用cat /proc/meminfo,直接看硬件的統計數據。

MemTotal: 131755760 kB MemFree: 38151680 kB Buffers: 217564 kB Cached: 78274852 kB SwapCached: 6072 kB Active: 29647292 kB Inactive: 50949268 kB Active(anon): 2073604 kB Inactive(anon): 30640 kB Active(file): 27573688 kB Inactive(file): 50918628 kB Unevictable: 0 kB Mlocked: 0 kB SwapTotal: 7812092 kB SwapFree: 5889924 kB Dirty: 804 kB Writeback: 0 kB AnonPages: 2100436 kB Mapped: 442904 kB Shmem: 92 kB Slab: 12017476 kB SReclaimable: 11910264 kB SUnreclaim: 107212 kB KernelStack: 31184 kB PageTables: 37492 kB NFS_Unstable: 0 kB Bounce: 0 kB WritebackTmp: 0 kB CommitLimit: 73689972 kB Committed_AS: 25708340 kB VmallocTotal: 34359738367 kB VmallocUsed: 491656 kB VmallocChunk: 34290629896 kB HardwareCorrupted: 0 kB AnonHugePages: 694272 kB HugePages_Total: 0 HugePages_Free: 0 HugePages_Rsvd: 0 HugePages_Surp: 0 Hugepagesize: 2048 kB DirectMap4k: 4096 kB DirectMap2M: 2019328 kB DirectMap1G: 132120576 kB

這里我們看到,內存總數total=125G,已使用used=89G,空閑free=36G,cache=78G。其他類型不等。

先解釋一下:

total 內存總數 used 已經使用的內存數 free 空閑的內存數 shared 多個進程共享的內存總額 buffers Buffer Cache和cached Page Cache 磁盤緩存的大小 -buffers/cache (已用)的內存數:used - buffers - cached +buffers/cache(可用)的內存數:free + buffers + cached 可用的memory=free memory+buffers+cached

這里可以看到我們使用了89G,其中cache占用了78G。這個占用有點高,并且不會自動釋放。

?

2、什么是cache

為了提高磁盤存取效率,Linux做了一些精心的設計,除了對dentry進行緩存(用于VFS,加速文件路徑名到inode的轉換),還采取了兩種主要Cache方式:Buffer Cache和Page Cache。前者針對磁盤塊的讀寫,后者針對文件inode的讀寫。這些Cache有效縮短了 I/O系統調用(比如read,write,getdents)的時間。

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

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

3、手動釋放cache

/proc是一個虛擬文件系統,我們可以通過對它的讀寫操作做為與kernel實體間進行通信的一種手段。也就是說可以通過修改/proc中的文件,來對當前kernel的行為做出調整。那么我們可以通過調整/proc/sys/vm/drop_caches來釋放內存。

釋放方法有三種(系統默認值是0,釋放之后你可以再改回0值):

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

注意:在清空緩存前我們需要在linux系統中執行一下sync命令,將緩存中的未被寫入磁盤的內容寫到磁盤上

具體的操作如下

# 先查看一下釋放cache信令值, 此時應該是0 $ cat /proc/sys/vm/drop_caches 0# 將緩沖區寫入磁盤, 當需要停止系統的時候, 保證文件系統的完整性 $ sync# 釋放cache, 這個命令可能要花費一點時間, 請耐心等待 $ echo 3 > /proc/sys/vm/drop_caches # 再看一眼 $ cat /proc/sys/vm/drop_caches 3

?再來看一眼內存

$ free -htotal used free shared buffers cached Mem: 125G 3.5G 122G 88K 13M 444M -/+ buffers/cache: 3.1G 122G Swap: 7.5G 1.8G 5.6G

cache已經釋放,free=122G。

?

轉載于:https://www.cnblogs.com/kangoroo/p/7375604.html

總結

以上是生活随笔為你收集整理的Linux内存(手动释放cache)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。