详细说明进程管理工具htop、vmstat等相关命令

htop
htop是一款运行于Linux系统监控与进程管理软件,用于取代Unix下传统top。与top只提供最消耗资源进程列表不同,htop提供所有进程的列表,并且使用彩色标识出处理器、swap和内存状态。

命令行选项#####

-C --no-color 使用一个单色的配色方案
-d --delay=DELAY 设置延迟更新时间,单位秒
-h --help 显示htop命令的帮助信息
-u --user=USERNAME 只显示一个给定的用户的过程
-p --pid=PID,PID... 只显示给定的PIDS
-s --sort-key COLUMN 依次列来排序
-v -version 显示版本信息

交互式命令#####
上下键或PgUP,PgDn选定想要的进程,左右键或Home,End移动字段,当然也可以直接用鼠标选定进程;
Space 标记/取消标记一个进程。命令可以作用于多个进程,例如"kill",将应用于所有已标记的进程
U 取消标记所有进程
s 选择某一个进程,按s:用strace追踪进程的系统调用
l 显示进程打开文件:如果安装lsof,按此键可以显示进程所打开的文件
I 倒装排序顺序,如果排序是正序的,则反转成倒序的,反之亦然
a 设置CPU affinity:标记一个进程允许使用那些CPU
u 显示特定用户进程
M 按Memory 使用排序
p 按CPU使用排序
T 按Time+ 使用排序
F 跟踪进程
K 显示/隐藏内核线程
H 显示/隐藏用户线程
CTRL -L 刷新
Numbers PID 查找:输入PID,光标将移动的相应的进程上
实例#####
[root@qingcheng-app ~]# htop

vmstat
显示虚拟内存状态,但是它可以报告关于进程、内存、I/O等系统整体运行状态

语法#####

vmstat [options] [delay [count]]

选项#####
-a:显示活动内页
-f:显示启动后创建进程总数
-n:头信息仅显示一次
-s:以表格方式显示事件计数器和内存状态
-d:报告磁盘状态
-p:显示指定的磁盘分区状态
-s:输出信息的单位
参数#####
- 事件间隔:状态信息刷新的时间间隔
- 次数:显示报告次数
实例#####
      9667820 forks
[root@qingcheng-app ~]# vmstat 3
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 2  0 10485556 730608      0 29480116    0    0     6    19    0    0  1  0 98  0  0
 0  0 10485556 730168      0 29480124    0    0     0    55 2367 4542  1  0 99  0  0
 0  0 10485556 726792      0 29482756    0    0    85  1770 1537 3709  0  0 99  0  0
 0  1 10485556 721084      0 29488360    0    0     0  1839 1984 4135  1  0 99  0  0
 0  0 10485556 721512      0 29488380    0    0     0    68 1469 3379  0  0 99  0  0
 1  0 10485556 721620      0 29488408    0    0    43  4317 2184 4840  0  0 97  2  0

字段说明

Procs(进程)
    .r:运行队列中进程数量,这个值也可以判断是否需要增减CPU
    .b:等待IO的进程数量
Memory(内存)
    .swpd:使用虚拟内存大小,如果swpd的值不为0,但是SI,SO的值长期为0,这种情况不会影响系统性能。
    .free:空闲物理内存大小
    .buff:作用缓冲的内存大小
    .cache:用作缓存的内存大小,如果cache的值大的时候,说明cache处的文件数多,如果频繁访问到的文件都被cache处,那么磁盘的读IO bi会非常小。
Swap
    .si:每秒从交换分区写到内存的大小,由磁盘调入内存
    .so:每秒写入交换区的内存大小,由内存调入磁盘。
IO
    .bi:每秒读取的块数
    .bo:每秒写入的块数
system(系统)
    .in:每秒中断数,包括时钟中断
    .cs:每秒上下文切换数
CPU(以百分比表示)
    .us:用户进程执行时间百分比(user time)
    .sy:内核系统进程执行时间百分比(system time)
    .wa:IO等待时间百分比
    .id:空闲时间百分比

top
可以实时动态地查看系统整体运行情况,是一个综合多方信息监测系统性能和运行信息的使用工具。

语法#####

top(选项)

选项#####

-b:以批处理模式操作
-c:显示完整的治命令
-d:屏幕刷新间隔时间
-I:忽略失效过程
-s:保密模式
-S:累积模式
-i<时间>:设置间隔时间
-u<用户名>:指定用户名
-p<进程号>:指定进程
-n<次数>:循环显示的次数

top交互命令#####
在top命令执行过程中可以使用一些交互的命令。这些命令都是单字母,如果在命令使用了-s选项,其中一些命令可能会被屏蔽。
h:显示帮助画面,给出一些简短的命令总结说明
k:终止一个进程
i:忽略闲置和僵死进程,这是一个开关命令
q:退出程序
r:重新安排一个进程的有限级别
S:切换到累积模式
s:改变两次刷新之间延迟时间(单位为s),如果有小数,就算成ms。输入0值则系统不断刷新,默认是5s
l:切换显示平均负载和启动时间信息
m:切换显示内存信息
t:切换显示进程和cpu状态信息
c:切换显示命令名称和完整命令行
M:根据驻留内存大小进行排序
p:根据CPU使用百分比大小进行排序
T:根据时间/累计时间进行排序
w:将当前设置写入~/.toprc文件中
实例#####
top - 17:24:40 up 14 days, 17:50,  1 user,  load average: 0.19, 0.31, 0.45
Tasks: 2627 total,   2 running, 2625 sleeping,   0 stopped,   0 zombie
%Cpu(s):  1.8 us,  0.9 sy,  0.0 ni, 97.0 id,  0.1 wa,  0.0 hi,  0.2 si,  0.0 st
KiB Mem : 32764588 total,   258216 free,  5279248 used, 27227124 buff/cache
KiB Swap:  1679356 total,  1230440 free,   448916 used. 26167424 avail Mem
解释:#####
   top - 17:24:40[当前系统时间]
  14 days[系统已经运行14天]
  1 user[1个用户当前登录]
   load average: 0.19, 0.31, 0.45[系统负载,即任务队列的平均长度]
  Tasks: 2627 total [总进程数]
  2 running [正在运行]
  2625 sleeping  [正在睡眠]
  0 stopped [停止进程数]
  0 zombie [冻结进程数]
  %Cpu(s):  1.8 us[内核空间占用CPU百分比]
  0.9 sy [内核占用CPU百分比]
  0.0 ni [用户进程占用空间的百分比]
  97.0 id[空闲CPU百分比]
  0.1 wa[等待输入输出的CPU百分比]
  0.0 hi
  0.2 si
  0.0 st
  Mem : 32764588 total [物理内存总量]
  258216 free [空闲内存总量]
  5279248 used [使用物理内存总量]
  27227124 buff/cache [使用内核缓存的内存量]
  Swap:  1679356 total [交换区总量]
  1230440 free [空闲交换区总量]
  448916 used  [使用交换区总量]
  26167424 avail Mem [缓冲交换区总量]
posted on 2018-02-06 14:57  美丽de世界  阅读(277)  评论(0编辑  收藏  举报