[实践OK]Linux下用Top查看某些或者某个进程(top -p pid),如何得到PHP的fastCGI进程的PID及用top指定查看这些PID的方法。
背景:通过top下Namp的生产环境,出现某一个PHP耗CPU 100%。(先top后再:shift+P,按内存:shift+M)
————————————————————————————————————————————————————
(1)查看php-fpm进程编号:
pidof php-fpm
12560 12559 12558 12557 12556 12555 12554 12553 12552 12551 12550 12549 12548 12547 12546 12545 12544 12543 12542 12541 12540 12539 12538 12537 12536 12535 12534 12533 12532 12531 12530 12529 12528
(2)通过awk把上面的进程号形成top -p pid1 -p pid2的形式:
pidof php-fpm|awk '{gsub(/ /i," -p ");print}'
-p 2560 -p 2559 -p 2558 -p 2557 -p 2556 -p 2555 -p 2554 -p 2553 -p 2552 -p 255 -p -p 2550 -p 2549 -p 2548 -p 2547 -p 2546 -p 2545 -p 2544 -p 2543 -p 2542 -p 254 -p -p 2540 -p 2539 -p 2538 -p 2537 -p 2536 -p 2535 -p 2534 -p 2533 -p 2532 -p 253 -p -p 2530 -p 2529 -p 2528
(3)用top只看php进程号,最后top查help,是这样的( -p pid [,pid ...]):
pidof php-fpm|awk '{gsub(/ /i," -p ");print "top "$0}'
top -p 2560 -p 2559 -p 2558 -p 2557 -p 2556 -p 2555 -p 2554 -p 2553 -p 2552 -p 255 -p -p 2550 -p 2549 -p 2548 -p 2547 -p 2546 -p 2545 -p 2544 -p 2543 -p 2542 -p 254 -p -p 2540 -p 2539 -p 2538 -p 2537 -p 2536 -p 2535 -p 2534 -p 2533 -p 2532 -p 253 -p -p 2530 -p 2529 -p 2528
(4)加上管道并sh执行即可(注意pid不能大于20个PHP进程):
pidof php-fpm|awk '{gsub(/ /,",");print "top -p "$0}'
加上sh:
pidof php-fpm|awk '{gsub(/ /,",");print "top -p "$0}'|sh
试下PHP的守护进程:
pidof php|grep -v grep|awk '{gsub(/ /,",");print "top -p "$0}'|sh
top: failed tty get
所以,最后还是得贴上去才行,会报上述的错。
top -p 29886,29877,24518,1895,1885
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
29886 www 15 0 120m 20m 2428 S 0 0.1 0:00.63 php
29877 root 21 0 0 0 0 Z 0 0.0 0:00.02 php <defunct>
24518 www 15 0 108m 9468 2524 S 0 0.1 0:34.99 php
1895 www 15 0 112m 13m 2424 S 0 0.1 0:02.48 php
1885 root 24 0 0 0 0 Z 0 0.0 0:00.02 php <defunct>
(5)通过对PHP的集中top后,再通过对高CPU进行监控,如12542的进程PID:
strace -p 12542
————————————————————————————————————————————————————
TOP中只查看某个或某些进程的信息
top中使用CPU或MEM排序,还是看不到我们想了解的进程的相关信息;
这时就可以指定对某个或某些进程进行TOP信息显示;
1、查看某个进程的信息
例:mysqld的信息
(1)得到mysqld进程的pid
[root@6 ~]# pidof mysqld
21538
(2)top指定查看PID
[root@6 ~]# top -p 21538
top - 09:15:06 up 30 days, 53 min, 3 users, load average: 0.07, 0.22, 0.23
Tasks: 1 total, 0 running, 1 sleeping, 0 stopped, 0 zombie
Cpu(s): 3.0%us, 6.9%sy, 0.2%ni, 89.4%id, 0.3%wa, 0.1%hi, 0.1%si, 0.0%st
Mem: 1035140k total, 994888k used, 40252k free, 383072k buffers
Swap: 2048248k total, 80k used, 2048168k free, 237456k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
21538 mysql 15 0 146m 21m 4372 S 0.0 2.1 3:03.84 mysqld
2、查看某些进程的信息
例:mysqld/httpd的信息
(1)得到mysqld/httpd进程的pid
[root@6 ~]# pidof mysqld
21538
[root@6 ~]# pidof httpd
31117 31116 31115 31114
(2)top指定查看PID
[root@6 ~]# top -p 21538,31117,31116,31115,31114
top - 09:20:05 up 30 days, 58 min, 3 users, load average: 0.37, 0.24, 0.23
Tasks: 5 total, 0 running, 5 sleeping, 0 stopped, 0 zombie
Cpu(s): 3.0%us, 6.9%sy, 0.2%ni, 89.4%id, 0.3%wa, 0.1%hi, 0.1%si, 0.0%st
Mem: 1035140k total, 994364k used, 40776k free, 383404k buffers
Swap: 2048248k total, 80k used, 2048168k free, 237560k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
21538 mysql 15 0 146m 21m 4372 S 0.0 2.1 3:03.86 mysqld
31117 apache 15 0 60036 8428 4668 S 0.0 0.8 0:00.48 httpd
31116 apache 15 0 60308 9.9m 6288 S 0.0 1.0 0:00.48 httpd
31115 apache 15 0 60100 8552 4756 S 0.0 0.8 0:00.48 httpd
31114 apache 15 0 59892 6452 3060 S 0.0 0.6 0:00.41 httpd
——————————————————————————————————————————
来自:http://blog.csdn.net/zhangfn2011/article/details/7488746
————————————————————————————————————————————————————
(1)查看php-fpm进程编号:
pidof php-fpm
12560 12559 12558 12557 12556 12555 12554 12553 12552 12551 12550 12549 12548 12547 12546 12545 12544 12543 12542 12541 12540 12539 12538 12537 12536 12535 12534 12533 12532 12531 12530 12529 12528
(2)通过awk把上面的进程号形成top -p pid1 -p pid2的形式:
pidof php-fpm|awk '{gsub(/ /i," -p ");print}'
-p 2560 -p 2559 -p 2558 -p 2557 -p 2556 -p 2555 -p 2554 -p 2553 -p 2552 -p 255 -p -p 2550 -p 2549 -p 2548 -p 2547 -p 2546 -p 2545 -p 2544 -p 2543 -p 2542 -p 254 -p -p 2540 -p 2539 -p 2538 -p 2537 -p 2536 -p 2535 -p 2534 -p 2533 -p 2532 -p 253 -p -p 2530 -p 2529 -p 2528
(3)用top只看php进程号,最后top查help,是这样的( -p pid [,pid ...]):
pidof php-fpm|awk '{gsub(/ /i," -p ");print "top "$0}'
top -p 2560 -p 2559 -p 2558 -p 2557 -p 2556 -p 2555 -p 2554 -p 2553 -p 2552 -p 255 -p -p 2550 -p 2549 -p 2548 -p 2547 -p 2546 -p 2545 -p 2544 -p 2543 -p 2542 -p 254 -p -p 2540 -p 2539 -p 2538 -p 2537 -p 2536 -p 2535 -p 2534 -p 2533 -p 2532 -p 253 -p -p 2530 -p 2529 -p 2528
(4)加上管道并sh执行即可(注意pid不能大于20个PHP进程):
pidof php-fpm|awk '{gsub(/ /,",");print "top -p "$0}'
加上sh:
pidof php-fpm|awk '{gsub(/ /,",");print "top -p "$0}'|sh
试下PHP的守护进程:
pidof php|grep -v grep|awk '{gsub(/ /,",");print "top -p "$0}'|sh
top: failed tty get
所以,最后还是得贴上去才行,会报上述的错。
top -p 29886,29877,24518,1895,1885
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
29886 www 15 0 120m 20m 2428 S 0 0.1 0:00.63 php
29877 root 21 0 0 0 0 Z 0 0.0 0:00.02 php <defunct>
24518 www 15 0 108m 9468 2524 S 0 0.1 0:34.99 php
1895 www 15 0 112m 13m 2424 S 0 0.1 0:02.48 php
1885 root 24 0 0 0 0 Z 0 0.0 0:00.02 php <defunct>
(5)通过对PHP的集中top后,再通过对高CPU进行监控,如12542的进程PID:
strace -p 12542
————————————————————————————————————————————————————
TOP中只查看某个或某些进程的信息
top中使用CPU或MEM排序,还是看不到我们想了解的进程的相关信息;
这时就可以指定对某个或某些进程进行TOP信息显示;
1、查看某个进程的信息
例:mysqld的信息
(1)得到mysqld进程的pid
[root@6 ~]# pidof mysqld
21538
(2)top指定查看PID
[root@6 ~]# top -p 21538
top - 09:15:06 up 30 days, 53 min, 3 users, load average: 0.07, 0.22, 0.23
Tasks: 1 total, 0 running, 1 sleeping, 0 stopped, 0 zombie
Cpu(s): 3.0%us, 6.9%sy, 0.2%ni, 89.4%id, 0.3%wa, 0.1%hi, 0.1%si, 0.0%st
Mem: 1035140k total, 994888k used, 40252k free, 383072k buffers
Swap: 2048248k total, 80k used, 2048168k free, 237456k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
21538 mysql 15 0 146m 21m 4372 S 0.0 2.1 3:03.84 mysqld
2、查看某些进程的信息
例:mysqld/httpd的信息
(1)得到mysqld/httpd进程的pid
[root@6 ~]# pidof mysqld
21538
[root@6 ~]# pidof httpd
31117 31116 31115 31114
(2)top指定查看PID
[root@6 ~]# top -p 21538,31117,31116,31115,31114
top - 09:20:05 up 30 days, 58 min, 3 users, load average: 0.37, 0.24, 0.23
Tasks: 5 total, 0 running, 5 sleeping, 0 stopped, 0 zombie
Cpu(s): 3.0%us, 6.9%sy, 0.2%ni, 89.4%id, 0.3%wa, 0.1%hi, 0.1%si, 0.0%st
Mem: 1035140k total, 994364k used, 40776k free, 383404k buffers
Swap: 2048248k total, 80k used, 2048168k free, 237560k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
21538 mysql 15 0 146m 21m 4372 S 0.0 2.1 3:03.86 mysqld
31117 apache 15 0 60036 8428 4668 S 0.0 0.8 0:00.48 httpd
31116 apache 15 0 60308 9.9m 6288 S 0.0 1.0 0:00.48 httpd
31115 apache 15 0 60100 8552 4756 S 0.0 0.8 0:00.48 httpd
31114 apache 15 0 59892 6452 3060 S 0.0 0.6 0:00.41 httpd
——————————————————————————————————————————
来自:http://blog.csdn.net/zhangfn2011/article/details/7488746
作者:jackxiang@向东博客 专注WEB应用 构架之美 --- 构架之美,在于尽态极妍 | 应用之美,在于药到病除
地址:https://jackxiang.com/post/6888/
版权所有。转载时必须以链接形式注明作者和原始出处及本声明!
最后编辑: jackxiang 编辑于2013-12-14 15:23
评论列表