
1 . 第一行(机器状态):
14:16:28 当前服务器时间
162 days, 4:41 服务器已启动时间
2 user 当前使用用户
load average : 0.00, 0.04, 0.05 一分钟,三分钟、五分钟的平均负载情况
2. 第二行(任务/进程 状态):
185 totals 总任务数
1 running 正在运行的任务数
184 sleeping 休眠的任务数
0 stopped 停止运行的任务数
0 zombie 僵尸任务数
3. 第三行(cpu状态)
0.0% us, 用户空间占用CPU的百分比
0.0% sy, 内核空间占用CPU的百分比
0.0% ni, 改变过优先级的进程占用CPU的百分比
99.8% id, 空闲CPU百分比
0.1% wa, IO等待占用CPU百分比
0.0% hi, 硬中断占用CPU百分比
0.0% si, 软中断占用CPU百分比
0.0% st 虚拟CPU等待实际CPU的时间百分比
4 .第四行(内存状态)
total 物理内存总量 used 已使用内存空间 free 空闲空间 buffers 缓存内存空间
5. 第五行(交换分区状态)
total 交换区总量 used 已使用交换分区空间 free 空闲空间 cached 缓冲空间

6. 第七行
PID :进程ID
USER:使用者
PR:进程优先级(
priority
)
NI: nice值,负值表示高优先级,正值表示低优先级
VIRT :进程使用虚拟内存总量 VIRT = SWAP + RES
RES :进程使用,未被换出的物理内存。 RES = CODE + DATA
SHR :共享内存大小
S : 进程状态(status) (D --->不可中断的睡眠状态,R --->运行,S --->睡眠,T--->跟踪/停止,Z--->僵尸进程)
%CPU :上次更新到现在的CPU占比
%MEM :进程使用的物理内存占比
TIME+:进程使用的CPU时间总计,单位1/100秒
COMMAND:进程名称(命令行、命令名)
7. top视图下,操作数字键盘1,观察各cpu的工作情况
8. 敲键盘f 键进入可编辑界面,选择对应字幕,大写和*一起表示显示,回车键查看
 9. 操作字母键盘b,y切换显示高亮显示正在运行的进程

top命令的监控最小单位是进程,所以看不到我关心的java线程数和客户连接数,而这两个指标是java的web服务非常重要的指标,通常我用ps和netstate两个命令来补充top的不足。
1. 监控java线程数: ps -eLf | grep java | wc -l
2. 监控网络客户连接数:
netstat -n | grep tcp | grep 侦听端口 | wc -l
3. 进程中运行的线程数
ls /proc/PID/task | wc -l
4.输出进程内存的状况,分析线程堆栈
pmap PID
|