Linux进程与交换和内存使用的详细信息



我正在使用以下脚本检查sqpctl进程的交换:

for file in /proc/*/status ; do awk '/VmSwap|Name|Pid/{printf $2 " " $3}END{ print ""}' $file; done | sort -k 5 -n -r | grep sqpctl

如何获得具有适当流程细节的上述输出?我的意思是,上面的脚本给了我这样的输出:

[20:00:49][root][~]$ for file in /proc/*/status ; do awk '/VmSwap|Name|Pid/{printf $2 " " $3}END{ print ""}' $file; done | sort -k 5 -n -r | grep sqpctl
sqpctl 11691 8979 0 25092 kB
sqpctl 11878 8979 0 24784 kB
sqpctl 12144 8979 0 20180 kB
sqpctl 11351 8979 0 20084 kB
sqpctl 8976 1 0 1476 kB
sqpctl 16210 8979 0 0 kB
sqpctl 16038 8979 0 0 kB

当我运行以下程序时,我会得到sqpctl产生的确切流程细节

[20:10:25][root][~]$ ps -ef | grep sqpctl
rdsdb     8976     1  0 19:27 ?        00:00:00 /u01/sqp/bin/sqpctl -d service start
rdsdb    11326  8979  0 19:34 ?        00:00:11 sqpctl -d sqptaskstr process1
rdsdb    11351  8979  0 19:34 ?        00:00:01 sqpctl -d sqptaskstr process2
rdsdb    11467  8979  0 19:34 ?        00:00:01 sqpctl -d sqptaskstr process3

那么,有没有一种方法可以将ps -ef与上述循环的交换用法结合起来,并获得确切的进程名称。基本上是这样的:

/u01/sqp/bin/sqpctl        11691 8979 0 25092 kB
process1                   11878 8979 0 24588 kB
process2                   11467 8979 0 24316 kB
process3                   12480 8979 0 21796 kB
process4                   11482 8979 0 21592 kB
process5                   12441 8979 0 21056 kB
process6                   11688 8979 0 20820 kB

这对您有帮助吗:

for file in /proc/*/status ; do awk '/VmSwap|Name/{printf $2 " " $3}END{ print ""}' $file; done | sort -k 2 -n -r | less

样本输出:

php-cgi 11964 kB
php-cgi 11016 kB
php-cgi 10392 kB
php-cgi 10336 kB
squid 6864 kB
lighttpd 4100 kB
php-cgi 3984 kB
php-cgi 3644 kB
php-cgi 3616 kB
php-cgi 3604 kB
rpc.mountd 3580 kB

使用atop:

atop 3 -P SWP,PRG

相关内容

  • 没有找到相关文章

最新更新