[实践OK]Linux下用Top查看某些或者某个进程(top -p pid),如何得到PHP的fastCGI进程的PID及用top指定查看这些PID的方法。

jackxiang 2013-12-14 15:05 | |
背景:通过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

作者:jackxiang@向东博客 专注WEB应用 构架之美 --- 构架之美,在于尽态极妍 | 应用之美,在于药到病除
地址:https://jackxiang.com/post/6888/
版权所有。转载时必须以链接形式注明作者和原始出处及本声明!


最后编辑: jackxiang 编辑于2013-12-14 15:23
评论列表
发表评论

昵称

网址

电邮

打开HTML 打开UBB 打开表情 隐藏 记住我 [登入] [注册]