有一天發現虛擬內存swap被佔滿了,我想查看一下是哪個進程佔用的,
先用top ,再按f ,再按p ,然後回車就可以看到了(CentOS7 這個方法不好使) ,
要釋放swap最有效的方法就是重啟該進程
分享一個檢查swap佔用情況的腳本:
![查看CentOS系統的swap虛擬內存](http://p2.ttnews.xyz/loading.gif)
![查看CentOS系統的swap虛擬內存](http://p2.ttnews.xyz/loading.gif)
原理:
每個進程都會在/proc下面生成一個以進程號為名字的目錄,裡面的各個文件就是其在內存中的映像。其中smaps這個文件,便記載了每個進程每個數據段佔用內存的情況。
Swap: 後面的數字,就是該數據段佔用的swap大小,我們只要把這個文件裡所有出現的swap加起來,就是這個進程所佔用的swap大小了
如下圖是查看某個pid的smaps的內容:
閱讀更多 小趙搞IT 的文章