日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

Linux内存(手动释放cache)

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

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

1、查看內(nèi)存

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,直接看硬件的統(tǒng)計數(shù)據(jù)。

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

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

先解釋一下:

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

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

?

2、什么是cache

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

cached主要負責緩存文件使用,?日志文件過大造成cached區(qū)內(nèi)存增大把內(nèi)存占用完?.

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

3、手動釋放cache

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

釋放方法有三種(系統(tǒng)默認值是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系統(tǒng)中執(zhí)行一下sync命令,將緩存中的未被寫入磁盤的內(nèi)容寫到磁盤上

具體的操作如下

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

?再來看一眼內(nèi)存

$ 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已經(jīng)釋放,free=122G。

?

轉(zhuǎn)載于:https://www.cnblogs.com/kangoroo/p/7375604.html

總結(jié)

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

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。