欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Lunux进程查看及管理工具 (ps, vmstat, dstat, glances等)

程序员文章站 2024-03-24 14:30:22
...

Linux进程查看及管理工具(ps, vmstat, dstat, glances等)

  • pstree
  • ps
  • pgrep/pkill
  • top/ptop
  • vmstat
  • dstat
  • pmap
  • glances

1. pstree

pstree - display a tree of processes

[root@localhost /]# pstree

2. ps [option] …

ps (process state) : repoat a snapshot of the current processes - 是描述当前进程的一个快照,是一个静态状态
Note: Linux各进程相关信息均保存在/proc/PID目录下的各文件中
option:支持3种风格,UNIX options, BSD options, GNU long options

2.1 ps 常用选项

usual option function
-a 与终端相关的进程
-x 与终端无关的进程
-u 以用户为中心组织进程状态信息显示
aux 常用组合
-e 显示所有进程
-f 显示完整格式的进程信息
-ef 显示完整格式的所有进程信息
-F 显示完整格式的进程信息
-H 以进程层级格式显示进程信息
-efH 常用组合
-eo 以指定的格式显示进程信息(-eo pid,tid,class,rtprio,ni,pri,psr,pcpu,stat,wchan:14,comm)
axo axo(stat,euid,ruid,tty,tpgid,sess,pgrp,ppid,pid,pcpu,comm)

2.2 ps 查看进程的各参数说明

[root@localhost 1]# ps -aux | head -1
USER        PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND|  
Name Explain
USER 进程属主
PID 进程id号
%CPU 该进程使用CPU占比
%MEM 该进程使用内存占比
VSZ Virtual Memory Size : 虚拟内存集
RSS ReSident Size :常驻内存集
TTY 进程启用的终端
STAT 进程状态
ni nice值
pri priority-优先级
psr processor-处理器
rtprio 实时优先级

2.3 进程状态

State Explain
R running-运行态
S interruptable sleeping-可中断睡眠状态
D uninterruptal sleeping-不可中断睡眠状态
T stopped-停止态
Z zombie-僵死态
+ 前台进程
1 多线程进程
N 低优先级进程
< 高优先级进程
s session leader

3. pgrep, pkill

可使用man pgrep查看其具体的使用方法

pgrep, pkill - look up or signal processes based on name and other attributes
SYNOPSIS:
pgrep [options] pattern
pkill [options] pattern

4. top/htop

这两个工具的详细信息可查看另一篇博客

top / htop 管理工具,可点击此处进行查看

5. vmstat

NAME vmstat - Report virtual memory statistics
SYNOPSIS vmstat [options] [delay [count]] : delay表示多长时间刷新一次, countb表示刷新次数

一般vmstat工具的使用是通过两个数字参数来完成的,第一个参数是采样的时间间隔数,单位是秒,第二个参数是采样的次数.


[aaa@qq.com 1]# vmstat 3 2
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 1  0 308992 128716     68 337964    2   14   174    47   61   45  0  0 100  0  0
 0  0 308992 128724     68 337964    0    0     0     0  143  128  0  0 100  0  0

5.1 vmstat结果参数介绍

procs
r-等待运行进程的个数
b-处于不可中断睡眠态的进程个数(被阻塞的队列的长度)
memory
swap-交换内存的使用总量
free-空闲物理内存使用总量
buff-用于缓冲的内存总量
cache-用于缓存的物理总量
swap
si-数据进入swap中的数据速率(kb/s)
so-数据离开iswap中的数据速率(kb/s)
io
bi-从块设备读入数据到系统的速率(kb/s)
bo- 保存数据到块设备的速率(kb/s)
system
in- interrupts(中断速率)
cs-context switch(进程切换速率
cpu
us-用户空间使用占比
sy-系统空间使用占比
id-空闲占比
wa-等待占比
Lunux进程查看及管理工具 (ps, vmstat, dstat, glances等)
Note:
如果CPU的id(空闲率)长期低于10%,那么表示CPU的资源已经非常紧张,应该考虑进程优化或添加更多地CPU。
wa(等待IO): 表示CPU因等待IO资源而*处于空闲状态,这时候的CPU并没有处于运算状态,而是被白白浪费了,所以“等待IO应该越小越好。

5.2 vmstat可选参数介绍

可使用 vmstat –help查看可选参数及其功能介绍

Option Explain
-a active/inactive memory(活跃和非活跃内存)
-f –forks number of forks since boot
-m, –slabs slabinfo
-m, –slabs slabinfo
-d, –disk disk statistics
-p, –partition partition specific statistics
-w, –wide wide output
wide output show timestamp

5.3 操作示例

[aaa@qq.com ~]# vmstat -a 
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
 r  b   swpd   free  inact active   si   so    bi    bo   in   cs us sy id wa st
 1  0 306688 102568 498476 170324    1    6    70    19   47   38  0  0 100  0  0

[aaa@qq.com ~]# vmstat -f
         7565 forks

[aaa@qq.com ~]# vmstat -m
Cache                       Num  Total   Size  Pages
isofs_inode_cache           153    153    640     51
fuse_request                 80     80    400     40
fuse_inode                   42     42    768     42
nf_conntrack_ffff9302b74c0000      0      0    320     51
nf_conntrack_ffffffffb0cfc900    204    204    320     51
rpc_inode_cache              51     51    640     51
...

[aaa@qq.com ~]# vmstat -d
disk- ------------reads------------ ------------writes----------- -----IO------
       total merged sectors      ms  total merged sectors      ms    cur    sec
sda    62476  12425 8109275   59592  44440  80956 2191291   11455      0     23
sdb      345      0   11800     118      0      0       0       0      0      0
sr0       29      0    2100     256      0      0       0       0      0      0
dm-0   59703      0 7965200   58816  43348      0 1526779    9090      0     22
dm-1   14197      0  117280    3735  82035      0  656280  117561      0      2
dm-2      47      0    2104      23      0      0       0       0      0      0
dm-3      82      0   10464     246      4      0    4096      59      0      0

[aaa@qq.com ~]# vmstat -w
procs -----------------------memory---------------------- ---swap-- -----io---- -system-- --------cpu--------
 r  b         swpd         free         buff        cache   si   so    bi    bo   in   cs  us  sy  id  wa  st
 1  0       306688       102796           68       353328    1    6    68    18   47   38   0   0 100   0   0

[aaa@qq.com ~]# vmstat -t
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu----- -----timestamp-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st                 CST
 1  0 306688 102564     68 353328    1    6    68    18   47   38  0  0 100  0  0 2018-08-22 14:22:24

6.dstat

dstat是一款查看系统资源管理非常精巧的一款工具,可以单独查看系统资源各自的使用清空,这里只对常用的加以说明。
SYNOPSIS: dstat [-afv] [options..] [delay [count]]

6.1 常用选项

Option Explain
-c 显示cpu相关信息
-C #,#,… 显示多个cpu的信息,#代表CPU的编号
-d 显示磁盘相关统计信息
-D sda, sdb, … 可单独显示多个磁盘
-gq 显示page相关统计数据
-m 显示memory相关统计数据
-n 显示network相关统计数据
-p 显示process相关统计数据
-s 显示swapped相关统计数据
-r 显示io请求相关统计数据
–tcp 显示tcp相关统计数据
–udp 显示udp相关统计数据
–unix 显示unix相关统计数据
–raw 显示raw相关统计数据
–socket 显示socket相关统计数据
–top-cpu 显示最占用cpu的进程
–top-io 显示最占用io的进程
–top-mem 显示最占用内存的进程
–top-lantency 显示延迟最大的进程

6.2 操作示例

[root@localhost ~]# dstat -c 5
----total-cpu-usage----
usr sys idl wai hiq siq
  0   0 100   0   0   0
  0   0 100   0   0   0
  0   0 100   0   0   0
  0   0 100   0   0   0

[root@localhost ~]# dstat -C  2,3 1 4
You did not select any stats, using -cdngy by default.
-------cpu2-usage--------------cpu3-usage------ -dsk/total- -net/total- ---paging-- ---system--
usr sys idl wai hiq siq:usr sys idl wai hiq siq| read  writ| recv  send|  in   out | int   csw 
  0   0 100   0   0   0:  0   0 100   0   0   0| 246k   66k|   0     0 |3507B   20k| 183   152 
  0   0 100   0   0   0:  0   0 100   0   0   0|   0     0 | 997B 1098B|   0     0 | 172   142 
  0   0 100   0   0   0:  0   0 100   0   0   0|   0     0 |1054B  426B|   0     0 | 171   141 
  0   1  99   0   0   0:  0   0 100   0   0   0|   0     0 | 822B  486B|   0     0 | 130   112 
  0   0 100   0   0   0:  0   0 100   0   0   0|   0     0 | 637B  426B|   0     0 | 142   121 

[root@localhost ~]# dstat -d
-dsk/total-
 read  writ
 246k   66k
   0     0 
   0     0 
   0     0 

[root@localhost ~]# dstat -D sda
You did not select any stats, using -cdngy by default.
----total-cpu-usage---- --dsk/sda-- -net/total- ---paging-- ---system--
usr sys idl wai hiq siq| read  writ| recv  send|  in   out | int   csw 
  0   0 100   0   0   0| 244k   66k|   0     0 |3491B   20k| 183   152 
  1   1  98   0   0   0|   0     0 | 472B  842B|   0     0 | 566   730 
  0   0 100   0   0   0|   0     0 | 180B  362B|   0     0 | 117   113 
  0   0 100   0   0   0|   0     0 | 120B  362B|   0     0 | 125   111 

[root@localhost ~]# dstat -g
---paging--
  in   out 
3478B   20k
   0     0 
   0     0 

[root@localhost ~]# dstat -m
------memory-usage-----
 used  buff  cach  free
 629M 68.0k  251M 94.4M
 629M 68.0k  251M 94.4M
 629M 68.0k  251M 94.4M

[root@localhost ~]# dstat -n
-net/total-
 recv  send
   0     0 
 724B  218B
 970B  170B

[root@localhost ~]# dstat -p
---procs---
run blk new
  0   0 0.5
  0   0   0
  0   0

[root@localhost ~]# dstat -s
----swap---
 used  free
 300M 1748M
 300M 1748M

[root@localhost ~]# dstat -r
--io/total-
 read  writ
3.75  2.67 
   0     0 
   0   

[root@localhost ~]# dstat -tcp 1 4
----system---- ----total-cpu-usage---- ---procs---
     time     |usr sys idl wai hiq siq|run blk new
22-08 14:55:03|  0   0 100   0   0   0|  0   0 0.5
22-08 14:55:04|  0   0 100   0   0   0|  0   0   0
22-08 14:55:05|  0   0 100   0   0   0|  0   0   0
22-08 14:55:06|  0   0 100   0   0   0|  0   0   0
22-08 14:55:07|  0   0 100   0   0   0|  0   0   0

[root@localhost ~]# dstat --tcp 1 4
----tcp-sockets----
lis act syn tim clo
 17   4   0   0   0
 17   4   0   0   0
 17   4   0   0   0
 17   4   0   0   0
 17   4   0   0   0

[root@localhost ~]# dstat --udp 1 4
--udp--
lis act
 11   0
 11   0
 11   0
 11   0
 11   0

[root@localhost ~]# dstat --unix 1 4
--unix-sockets-
dgm str lis act
 53 769  62 707
 53 769  62 707
 53 769  62 707
 53 769  62 707
 53 769  62 707

[root@localhost ~]# dstat --raw 1 4
raw
raw
  0
  0
  0
  0
  0

[root@localhost ~]# dstat --socket 1 4
------sockets------
tot tcp udp raw frg
  1  13   8   0   0
  1  13   8   0   0
  1  13   8   0   0
  1  13   8   0   0
  1  13   8   0   0

[root@localhost ~]# dstat --top-cpu 1 4
-most-expensive-
  cpu process   
vmtoolsd     0.0


geoclue      0.2
kworker/0:2  0.2

[root@localhost ~]# dstat --top-io 1 4
----most-expensive----
     i/o process      
packagekitd  65k   57B
sshd: aaa@qq.com 146B  196B
sshd: aaa@qq.com  78B  132B
sshd: aaa@qq.com  78B  132B
sshd: aaa@qq.com  78B  132B

[root@localhost ~]# dstat --top-mem 1 4
--most-expensive-
  memory process 
gnome-shell  135M
gnome-shell  135M
gnome-shell  135M
gnome-shell  135M

7. pmap

pmap - report memory map of a process(显示进程中虚拟内存和真实物理内存之间的映射关系)
SYNOPSIS - pmap [options] pid […]

其有另一种实现方式

“`
[aaa@qq.com ~]# cat /proc/PID/maps

8. glances

glances - A cross-platform curses-based system monitoring tool: 一种跨平台的系统资源监控工具
glance有许多内建命令,可以查看各部分系统资源的使用情况

Lunux进程查看及管理工具 (ps, vmstat, dstat, glances等)

8.1 glances内建命令

   a      Sort process list automatically

   b      Switch between bit/s or Byte/s for network I/O

   c      Sort processes by CPU usage

   d      Show/hide disk I/O stats

   e      Enable/disable top extended stats

   f      Show/hide file system stats

   F      Switch between file system used and free space

   g      Generate graphs for current history

   h      Show/hide the help screen

   i      Sort processes by I/O rate

   l      Show/hide log messages

   m      Sort processes by MEM usage

   n      Show/hide network stats

   p      Sort processes by name

   q      Quit

   r      Reset history

   s      Show/hide sensors stats

   t      Sort process by CPU times (TIME+)

   T      View network I/O as combination

   u      Sort processes by USER

   U      View cumulative network I/O

   w      Delete finished warning log messages

   x      Delete finished warning and critical log messages

   z      Show/hide processes stats

   z      Show/hide processes list (for low CPU consumption)

   0      Task's cpu usage will be divided by the total number of CPUs

   1      Switch between global CPU and per-CPU stats

   2      Enable/disable left sidebar

   3      Enable/disable the quick look module

   4      Enable/disable all but quick look and load module

   /      Switch between short name/command line (processes name)

8.2 glances常用选项

Option Explain
-b 以byte为单位显示网卡数据速率
-d /path/to/somefile 设定输入文件位置
**-o {HTML CSV}**
-n 禁用网络模块
-t 延迟时间间隔
-1 每个CPU的相关数据单独显示

Note: C/S模式下运行glances命令
服务模式
glcnces -s -B IPADDR (IPADDR-指明监听与本机的哪个地址)
客户端模式
Lunux进程查看及管理工具 (ps, vmstat, dstat, glances等)