• Linux下多线程查看工具(pstree、ps、pstack),linux命令之-pstree使用说明, linux 查看线程状态。 不指定


    0.最常用 pstree:
    [root@iZ25dcp92ckZ temp]# pstree -a|grep multe
      |       |   `-multepoolser
      |       |       `-multepoolser
      |       |           `-2*[{multepoolser}]

    1. > top

    可以显示所有系统进程

    按u, 再输入相应的执行用户名称,比如Tom

    可以看到Tom用户启动的所有进程和对应的pid

    2. > pstack pid

    可以看到此pid下,各线程的运行状态、

    [root@test multepoolserver]# pstack  14944  (进程的PID号)
    Thread 2 (Thread 0x41ed5940 (LWP 14945)):
    #0  0x0000003c9ae0d5cb in read () from /lib64/libpthread.so.0
    #1  0x00000000004017b6 in sync_additional_writing_worker ()
    #2  0x0000003c9ae064a7 in start_thread () from /lib64/libpthread.so.0
    #3  0x0000003c9a2d3c2d in clone () from /lib64/libc.so.6
    Thread 1 (Thread 0x2b24b3094250 (LWP 14944)):
    #0  0x0000003c9a2d4018 in epoll_wait () from /lib64/libc.so.6
    #1  0x0000000000401d59 in Process ()
    #2  0x00000000004029b8 in main ()

    来自:http://blog.csdn.net/wind_324/article/details/6152912

    方法一:
    ps -ef f 
    用树形显示进程和线程
    在Linux下面好像因为没有真正的线程,是用进程模拟的,有一个是辅助线程,所以真正程序开的线程应该只有一个。

    方法二:
    [root@apache dhj]# ps axm|grep httpd

    方法三:
    另外用pstree -c也可以达到相同的效果,但是没有线程号:
    [root@apache dhj]# pstree -c|grep httpd

    来自:http://blog.chinaunix.net/uid-346158-id-2131012.html

    1. pstree

    pstree以树结构显示进程

    1. root@119.10.6.*:~# pstree  
    2. init─┬─NetworkManager  
    3.      ├─abrt-dump-oops  
    4.      ├─abrtd  
    5.      ├─atd  
    6.      ├─auditd───{auditd}  
    7.      ├─automount───4*[{automount}]  
    8.      ├─certmonger  
    9.      ├─crond  
    10.      ├─dbus-daemon  
    11.      ├─hald─┬─hald-runner─┬─hald-addon-acpi  
    12.      │      │             └─hald-addon-inpu  
    13.      │      └─{hald}  
    14.      ├─httpd─┬─httpd  
    15.      │       └─4*[httpd───26*[{httpd}]]  
    16.      ├─irqbalance  
    17.      ├─mcelog  
    18.      ├─6*[mingetty]  
    19.      ├─modem-manager  
    20.      ├─mysqld_safe───mysqld───38*[{mysqld}]  
    21.      ├─nginx───13*[nginx]  
    22.      ├─php-fpm───76*[php-fpm]  
    23.      ├─portreserve  
    24.      ├─rpc.idmapd  
    25.      ├─rpc.statd  
    26.      ├─rpcbind  
    27.      ├─rsyslogd───3*[{rsyslogd}]  
    28.      ├─2*[sendmail]  
    29.      ├─sshd───sshd───bash───pstree  
    30.      ├─udevd───2*[udevd]  
    31.      ├─wpa_supplicant  
    32.      └─xinetd  



    2. ps -Lf
    $ ps -Lf 1892
    如下:PHP进程共启动了0个线程
    root@119.10.6.**:~# ps -Lf 1892
    UID        PID  PPID   LWP  C NLWP STIME TTY      STAT   TIME CMD
    root      1892     1  1892  0    1 Jan15 ?        Ss     0:53 php-fpm: master process (/usr/local/php/etc/php-fpm.conf)

    Mysql多个线程:
    root@119.10.6.*:~#  ps -Lf 3005
    UID        PID  PPID   LWP  C NLWP STIME TTY      STAT   TIME CMD
    mysql     3005  2011  3005  0   39 Jan15 ?        Sl     2:25 /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/data/mysql --plugin-dir=
    mysql     3005  2011  3081  0   39 Jan15 ?        Sl     0:00 /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/data/mysql --plugin-dir=
    mysql     3005  2011  3082  0   39 Jan15 ?        Sl     0:05 /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/data/mysql --plugin-dir=
    mysql     3005  2011  3083  0   39 Jan15 ?        Sl     0:00 /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/data/mysql --plugin-dir=
    mysql     3005  2011  3084  0   39 Jan15 ?        Sl     0:00 /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/data/mysql --plugin-dir=
    mysql     3005  2011  3085  0   39 Jan15 ?        Sl     0:00 /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/data/mysql --plugin-dir=
    mysql     3005  2011  3086  0   39 Jan15 ?        Sl     0:00 /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/data/mysql --plugin-dir=
    mysql     3005  2011  3087  0   39 Jan15 ?        Sl     0:05 /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/data/mysql --plugin-dir=

    3. pstack
    pstack显示每个进程的栈跟踪,PHP的fpm主进程,发现这玩意是走的epoll:
    root@119.10.6.23:~# pstack 1892
    #0  0x00000030e9ae8fb3 in __epoll_wait_nocancel () from /lib64/libc.so.6
    #1  0x0000000000856a74 in fpm_event_epoll_wait ()
    #2  0x000000000084afff in fpm_event_loop ()
    #3  0x0000000000845ee7 in fpm_run ()
    #4  0x000000000084d900 in main ()
    You have new mail in /var/spool/mail/root

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

  • 相关阅读:
    【DOM】如何给div的placeholder传参
    【nvm】使用nvm将node升级到指定版本
    【Worktile】升级业务组件库后,http的数据返回整个response而不是data问题及解决方案
    js获取上传文件内容
    【正则】正则表达式-零宽断言(?=,?<=,?!,?<!)及常见报错
    【Angular】动态组件
    【扩展】div获取焦点或可编辑
    【CSS】position新增属性sticky
    thinkphp写接口返回固定的形式方法
    thinkphp5计算文件大小
  • 原文地址:https://www.cnblogs.com/lidabo/p/5628103.html
Copyright © 2020-2023  润新知