2017-12-20 19:33:29
top工具
top是linux常用的性能分析工具,能够实时显示各个进程的资源使用情况。

在命令行输入 top 即可进入

[root@tigerfive ~]# top

top - 07:47:17 up 28 min,  2 users,  load average: 1.08, 1.54, 1.13
Tasks: 209 total,   1 running, 208 sleeping,   0 stopped,   0 zombie
%Cpu(s):  2.4 us, 12.2 sy,  0.1 ni, 82.1 id,  3.2 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem :  7946924 total,  3838888 free,  1033464 used,  3074572 buff/cache
KiB Swap:  8388604 total,  8388604 free,        0 used.  4911180 avail Mem
PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND

第一行

07:47:17  当前时间
28 min     已运行时间
2 users    当前连接用户
load average: 1.08, 1.54, 1.13   平均负载 :一分钟  五分钟  十五分钟

第二行

209 total          当前运行的总进程数
1 running        正在运行的进程数
208 sleeping    挂起的进程数 
0 stopped        停止的进程数
0 zombie          僵尸进程数

第三行

2.4 us      用户占用的CPU百分比
12.2 sy    系统占用的cpu百分比
 0.1 ni,     调整过优先级的进程占用cpu百分比
82.1 id     空闲时间占cpu百分比 
3.2 wa      等待(等待I/O输入输出)时间占cpu百分比
0.0 hi       cpu硬中断占用时间百分比
0.0 si        cpu软中断占用时间百分比
0.0 st        被偷走的占用时间百分比

这里的CPU时间百分比是平均值,按1即可展开全部cpu的详细情况

第四行

total                物理内存总量
free                 空闲的物理内存
used                已使用的物理 内存
buff/cache        缓冲/缓存 内存

第五行

total       交换区总量
free        空闲的交换区   
used       已使用的交换分区

进程信息

pid        进程ID
user      进程的所有者
PR         实时优先级(共140个级别)
NI          优先级 
VIRT       进程使用的虚拟内存
RES        进程使用的真实内存
SHR        共享内存
S             进程状态
%CPU      进程的cpu占用率
%MEM      进程的内存占用率
TIME+       进程占用的总cpu时间片段
COMMSND  进程名称

top的其他交互式指令

h|?帮助
M    按内存的使用排序
P    按CPU使用排序
N    以PID的大小排序
R    对排序进行反转
f    自定义显示字段
1    显示所有CPU的负载

<    向前
>    向后
z    彩色
W 保存top环境设置 ~/.toprc

需要被监控的

    top 中第一行的 load average 需要被监控 load average  : 一分钟 五分钟  十五分钟   等待cpu处理的进程队列的平均长度

 [root@tigerfive ~]# top -bn1 |head -1
     top - 11:28:31 up  4:00,  3 users,  load average: 0.53, 0.46, 0.49             
[root@tigerfive ~]# top -bn1   | head -1 | cut -d ','  -f 3- 
     load average: 0.42, 0.54, 0.53
[root@tigerfive ~]# top -bn1   | head -1 | awk -F ',' '{print $3","$4","$5}'
     load average: 0.33, 0.46, 0.50
[root@tigerfive ~]# top -bn1   | head -1 | awk '{print $10$11$12}'
     0.72,0.51,0.51  

需要注意的是,如果运行时间超过一天就需要更改后边的参数,所以需要脚本中需要先判断时间

第二行的 Tasks 也需要监控

监控是否有僵尸进程

。。。