runsisi's

technical notes

查看进程或线程

2019-01-23 runsisi#debug

~# top -H -b -n 1 -p 2888268
top - 10:31:31 up 1 day, 19:05,  3 users,  load average: 1.05, 1.15, 1.17
Threads: 111 total,   0 running, 111 sleeping,   0 stopped,   0 zombie
%Cpu(s):  4.5 us,  2.1 sy,  0.0 ni, 92.0 id,  1.3 wa,  0.0 hi,  0.2 si,  0.0 st
KiB Mem:  65093492 total, 25315572 used, 39777920 free,   461544 buffers
KiB Swap:        0 total,        0 used,        0 free.  3273276 cached Mem

    PID USER      PR  NI    VIRT    RES    SHR S %CPU %MEM     TIME+ COMMAND
2888268 ceph      20   0 3288476 1.307g  18856 S  0.0  2.1   0:01.56 ceph-osd
2888305 ceph      20   0 3288476 1.307g  18856 S  0.0  2.1   1:13.50 log
2888325 ceph      20   0 3288476 1.307g  18856 S  0.0  2.1   4:32.25 msgr-worker-0
2888326 ceph      20   0 3288476 1.307g  18856 S  0.0  2.1   3:43.48 msgr-worker-1
2888327 ceph      20   0 3288476 1.307g  18856 S  0.0  2.1   3:00.98 msgr-worker-2
2888374 ceph      20   0 3288476 1.307g  18856 S  0.0  2.1   0:00.16 service
2888375 ceph      20   0 3288476 1.307g  18856 S  0.0  2.1   0:52.91 admin_socket
2888376 ceph      20   0 3288476 1.307g  18856 S  0.0  2.1   0:00.00 signal_handler
2888505 ceph      20   0 3288476 1.307g  18856 S  0.0  2.1   0:00.00 ceph-osd
2888506 ceph      20   0 3288476 1.307g  18856 S  0.0  2.1   0:00.72 ceph-osd
...

其中各选项的含义如下:

-H 查看线程,-b 批量输出模式,-n 1 只输出一次,-p 指定进程号

~# ps -T -p 2888268
    PID    SPID TTY          TIME CMD
2888268 2888268 ?        00:00:01 ceph-osd
2888268 2888305 ?        00:01:14 log
2888268 2888325 ?        00:04:33 msgr-worker-0
2888268 2888326 ?        00:03:44 msgr-worker-1
2888268 2888327 ?        00:03:02 msgr-worker-2
2888268 2888374 ?        00:00:00 service
2888268 2888375 ?        00:00:54 admin_socket
2888268 2888376 ?        00:00:00 signal_handler
2888268 2888505 ?        00:00:00 ceph-osd
...

其中各选项的含义如下: -T 查看线程,-p 指定进程号

相对来说 ps 更为简单,但 top 可以动态的查看各线程的 CPU 资源占用(不使用 -b, -n 参数)。

top 基本使用方法

  1. 在启动时,指定列进行排序
top -o %MEM
top -o RES

-o 选项指定需要排序的列;

  1. 在 top 启动之后,指定列进行排序

shift + f,根据提示选择需要排序的列,然后按 s 即可,top 会在上方显示详细的使用方法,因此只需要记住 shift + f 组合键即可;

  1. 在 top 启动后,增加或减少显示的列

f,根据提示选择需要增加或减少显示的列即可,top 会在上方显示详细的使用方法,因此只需要记住 f 按键即可;

  1. 调整 top 中显示的内存使用量的显示单位

默认 top 以 KiB 为单位显示,按 e 可以在 K/M/G/T/PiB 之间切换。

ps 基本使用方法

  1. 日常使用
ps aux
  1. 显示父进程
ps -efj
  1. 显示进程的启动时间
ps -eo pid,lstart,cmd