Lunux进程查看及管理工具 (ps, vmstat, dstat, glances等)
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
这两个工具的详细信息可查看另一篇博客
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-等待占比
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有许多内建命令,可以查看各部分系统资源的使用情况
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-指明监听与本机的哪个地址)
客户端模式