色综合图-色综合图片-色综合图片二区150p-色综合图区-玖玖国产精品视频-玖玖香蕉视频

您的位置:首頁技術(shù)文章
文章詳情頁

linux free命令以及系統(tǒng)內(nèi)存占用過高的處理方式

瀏覽:11日期:2023-10-08 21:02:50
目錄linux free 命令以及系統(tǒng)內(nèi)存占用過高的處理free常用參數(shù)linux 內(nèi)存 占用較高問題排查查看內(nèi)存情況問題定位總結(jié)linux free 命令以及系統(tǒng)內(nèi)存占用過高的處理[root@localhost ~]# free -m totalusedfree shared buff/cache availableMem: 3770 2283270 11 2713285Swap: 8190 08190

第一行Mem,表示物理內(nèi)存統(tǒng)計

total:總內(nèi)存大小used:已使用內(nèi)存大小free:當前空閑內(nèi)存大小shared:多個進程共享的內(nèi)存總額buffers/cached:緩存內(nèi)存數(shù)據(jù)

第二行-/+ buffers/cache:

(1)used  實際使用的內(nèi)存,等于第一行的 used - buffers - cached

(2)free  實際可用內(nèi)存,等于第一行的 free + buffers + cached

內(nèi)存占用計算公式used/(used+free)

第三行Swap表示交換區(qū)的使用情況,也就是我們通常所說的虛擬內(nèi)存。

free常用參數(shù)free -b #以Byte為單位顯示內(nèi)存使用情況free -k #以KB為單位顯示內(nèi)存使用情況,也是默認參數(shù)free -m #以MB為單位顯示內(nèi)存使用情況free -g #以GB為單位顯示內(nèi)存使用情況free -s<數(shù)字> #間隔數(shù)字秒數(shù)刷新顯示內(nèi)存使用情況free -t #顯示內(nèi)存總和列free -V#顯示當前版本

在Linux系統(tǒng)下,我們一般不需要去釋放內(nèi)存,因為系統(tǒng)已經(jīng)將內(nèi)存管理的很好。但是凡事也有例外,有的時候內(nèi)存會被緩存占用掉,導(dǎo)致系統(tǒng)使用SWAP空間影響性能,此時就需要執(zhí)行釋放內(nèi)存(清理緩存)的操作了。

Linux系統(tǒng)的緩存機制是相當先進的,他會針對dentry(用于VFS,加速文件路徑名到inode的轉(zhuǎn)換)、Buffer Cache(針對磁盤塊的讀寫)和Page Cache(針對文件inode的讀寫)進行緩存操作。

但是在進行了大量文件操作之后,緩存會把內(nèi)存資源基本用光。但實際上我們文件操作已經(jīng)完成,這部分緩存已經(jīng)用不到了。

這個時候,我們難道只能眼睜睜的看著緩存把內(nèi)存空間占據(jù)掉么?

所以,我們還是有必要來手動進行Linux下釋放內(nèi)存的操作,其實也就是釋放緩存的操作了。

要達到釋放緩存的目的,我們首先需要了解下關(guān)鍵的配置文件/proc/sys/vm/drop_caches。

這個文件中記錄了緩存釋放的參數(shù),默認值為0,也就是不釋放緩存。他的值可以為0~3之間的任意數(shù)字,代表著不同的含義:

0 – 不釋放1 – 釋放頁緩存2 – 釋放dentries和inodes3 – 釋放所有緩存

知道了參數(shù)后,我們就可以根據(jù)我們的需要,使用下面的指令來進行操作。

首先我們需要使用sync指令,將所有未寫的系統(tǒng)緩沖區(qū)寫到磁盤中,包含已修改的 i-node、已延遲的塊 I/O 和讀寫映射文件。否則在釋放緩存的過程中,可能會丟失未保存的文件。

#sync

接下來,我們需要將需要的參數(shù)寫進/proc/sys/vm/drop_caches文件中,比如我們需要釋放所有緩存,就輸入下面的命令:

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

此指令輸入后會立即生效,可以查詢現(xiàn)在的可用內(nèi)存明顯的變多了。

要查詢當前緩存釋放的參數(shù),可以輸入下面的指令:

cat /proc/sys/vm/drop_caches

1.清理前內(nèi)存使用情況

free -m

2.開始清理

echo 1 > /proc/sys/vm/drop_caches

3.清理后內(nèi)存使用情況

free -m

4.完成

查看內(nèi)存條數(shù)命令:

dmidecode | grep -A16 'Memory Device$'linux 內(nèi)存 占用較高問題排查查看內(nèi)存情況

#按 k 查看

free

#按兆M查看

free -m

total:總計物理內(nèi)存的大小。used:已使用多大。free:可用有多少。Shared:多個進程共享的內(nèi)存總額。Buffers/cached:磁盤緩存的大小。

#所以空閑內(nèi)存=free+buffers+cached=total-used

內(nèi)存的使用情況

cat /proc/meminfo

查看進程的內(nèi)存占用

pidstat -r -p 24427 1 5

內(nèi)存占用高的前20

ps aux | head -1;ps aux |grep -v PID |sort -rn -k +4 | head -20

動態(tài)查看內(nèi)存占用

slabtop

問題定位

cached 占用過高問題

buffer,cached的作用:

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ù)很多。

linux服務(wù)器會自動釋放內(nèi)存,保障系統(tǒng)運行,但只會釋放夠用的內(nèi)存,而不會去釋放更多的內(nèi)存。

解決方法:

手動釋放cached方法有三種(系統(tǒng)默認值是0,釋放之后你需要再改回0值):

釋放前最好sync一下,防止丟數(shù)據(jù)

sync 在啟動機器或關(guān)機之前一定要運行sync命令。記住在任何情況下,慎重地執(zhí)行sync命令決不會有任何壞處,sync命令強制把磁盤緩沖的所有數(shù)據(jù)寫入磁盤

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

#常用方法是

syncecho 1 > /proc/sys/vm/drop_caches

#清除后要還原系統(tǒng)默認配置:

echo 0 > /proc/sys/vm/drop_caches

#查看設(shè)置

sysctl -a | grep drop_caches

補充: echo 字符串 > 文件 就是把字符串內(nèi)容從定向到文件中

這時查看 free 可以看到 cached 降低了很多

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持好吧啦網(wǎng)。

標簽: Linux
主站蜘蛛池模板: 日本高清在线中文字幕网 | 国产精品三级国语在线看 | 亚洲综合日韩精品欧美综合区 | 亚洲乱人伦在线 | 国产欧美视频在线观看 | 亚洲综合一区二区不卡 | 免费看裸色 | 欧美综合成人 | 亚洲三级在线免费观看 | 日韩精品小视频 | 国产亚洲精品一区二区三区 | 国产手机在线精品 | 久久频这里精品99香蕉久 | 欧美a级完整在线观看 | 日本性色 | 玖玖香蕉视频 | 日本www在线播放 | 在线观看欧洲成人免费视频 | 日本a级毛片视频播放 | 久草在线色站 | 久久中文字幕久久久久91 | 免费人成年短视频在线观看网站 | 特黄特黄一级高清免费大片 | 高清在线一区二区三区亚洲综合 | 特级aaa片毛片免费观看 | 中文字幕国产欧美 | 国产精品久久久久免费 | 色综合久久88色综合天天提莫 | 亚洲美女福利视频在线 | 国产精品久久久久久久9999 | 亚洲九九色| 男人和女人的做刺激性视频 | 色青青草原桃花久久综合 | 成人毛片免费视频播放 | 99精品国产成人一区二区在线 | 亚洲国产成人久久精品图片 | 欧美一级毛片免费观看 | 成人区精品一区二区毛片不卡 | 国内精品自产拍在线观看91 | 亚洲毛片在线观看 | 日韩高清成人毛片不卡 |