Linux下交換內(nèi)存耗盡如何查看及如何處理。以及查看shell腳本描述。交換內(nèi)存不足時(shí),啟動(dòng)應(yīng)用時(shí)會(huì)報(bào)內(nèi)存不足。
啟動(dòng)應(yīng)用時(shí)報(bào)內(nèi)存不足,直接Linux命令行top查看下。swap used100%,0free。
reboot服務(wù)器能有效的釋放swap,可是很多情況下是不能重啟服務(wù)器的。這時(shí)就要弄明白是什么占著內(nèi)存。查看下/proc目錄下內(nèi)容,發(fā)現(xiàn)很多數(shù)字命名的目錄,這些就是Linux的進(jìn)程了。
要讓進(jìn)程釋放swap的方法只有kill掉該進(jìn)程了。寫個(gè)腳本來查看具體是哪些進(jìn)程占著內(nèi)存啦。
一、對(duì)/proc目錄下所有以數(shù)字為名的目錄進(jìn)行遍歷
二、1目錄是根進(jìn)程重啟會(huì)導(dǎo)致系統(tǒng)重啟,所以直接排除掉。
三、算出每個(gè)進(jìn)程占用內(nèi)存的大小,然后按照大小排序
四、輸出內(nèi)存占用大于1MB的進(jìn)程
將運(yùn)行結(jié)果保存到swap.log文件中
查看swap.log.10325這個(gè)進(jìn)程內(nèi)存占用最多有130幾M。
直接kill掉,然后再top查看。
ok,swap一下子釋放了很多,搞定。
注意事項(xiàng):proc目錄下1目錄不能直接kill掉