查詢linux的swap被什么使用了
查詢centos的swap被什么進程使用了
swap內存被什么程序占用,什么程序使用了swap分區,占用swap內存的進程
查系統使用swap內存前10個進程:
for i in $( cd /proc;ls |grep "^[0-9]"|awk ' $0 >100') ;do awk '/Swap:/{a=a+$2}END{print '"$i"',a/1024"M"}' /proc/$i/smaps 2>/dev/null ; done | sort -k2nr |head
這個命令的含義是:
1.?首先,使用`cd?/proc`進入`/proc`目錄。
2.?使用`ls?|grep?"^[0-9]"|awk?'?$0?>100'`命令列出該目錄下所有以數字開頭且大于100的文件夾。
3.?使用一個循環來遍歷每個文件夾,將其存儲在變量i中。
4.?在循環中,使用`awk?'/Swap:/{a=a+$2}END{print?'"$i"',a/1024"M"}'?/proc/$i/smaps?2>/dev/null`命令來計算每個進程的Swap使用量,并以MB為單位打印出來。其中,`/proc/$i/smaps`表示進程的內存映射文件。
5.?最后,使用管道符號`|`將輸出結果傳遞給`sort?-k2nr`命令進行按照第二列數字降序排序。
6.?使用管道符號再將結果傳遞給`head`命令顯示前面幾行結果,默認是顯示前10行。
這個命令的作用是找到占用Swap內存最多的進程,并顯示其進程ID和Swap使用量。
查看某個進程使用的swap內存:
linux查看進程使用了多少swap內存
比如查看進程id為24450使用了多少swap內存
awk '/Swap:/{a=a+$2}END{print a/1024"M"}' /proc/24450/smaps
輸出如:1208.17M
查占用內存資源最多的11個進程
ps aux --sort=-pmem | head -11
(已知centos7可以,redhat6不行)