第一行:
16:16:10 表示当前时间
10 days,23:35 表示系统运行时间
2 users 当前登陆用户数
load average:1.61,1.68,1.93 当前系统负载情况,即任务队列的平均长度。三个数值分别为 1min 5min 15min前到现在的平均值,对于一个具有n核处理器的系统来说,当系统负载的load average为n的时候,表示系统差不多满负荷,但是已经没有额外的精力去处理其他任务了,当load average大于n的时候,表示系统超负荷运转,一般来说是为了使系统能正常运转,我们经验上,任务load average/n < 0.7是一般能接受的情况
第二、三行为进程和cpu信息(当有多个cpu时,这些内容可能会超过两行)
Tasks: 734 total 当前进程总数
3 running 当前正在运行的进程数
731 sleeping 睡眠的进程数
0 stopped 停止的进程数
0 zombie 僵尸进程数
2.9 us 用户空间占用CPU百分比
3.2sy 内核空间占用CPU百分比
0.0ni 用户进程空间内改变过优先级的进程占用CPU百分比
93.8id 空闲cpu百分比
wa 等待输入输出的进程占cpu资源的百分比
hi 硬中断占用的百分比
si 软中断占用的百分比
st 虚拟机占用的百分比
total:物理内存总量 free:空闲内存总量 used:使用的物理内存总量 buff:用作内核缓存的内存量(单位为:k)
Swap:表示硬盘上交换分区的使用情况。只有mem被当前进程实际占用完,即没有了buffers和cache时,才会使用到swap
PID:进程ID
USER:进程所有者的用户名
PR:优先级(指进程执行的优先权,其值越小,越早被执行。范围是100139。实时进程优先级在099)
NI:nice值。负值表示高优先级,正值表示低优先级(这个进程的nice值,表示进程可被执行的优先级的修正值,取值范围为-20~19。PRI=PRI+NI)
VIRT:进程使用的虚拟内存总量,单位KB,VIRT=SWAP+RES
SWAP:进程使用的虚拟内存中,被换出的大小
RES:进程使用的,未被换出的物理内存大小 RES=CODE+DAT
CODE:可执行代码占用的物理内存大小
DATA:可执行代码以外的部分(数据段+栈)占用的物理内存大小
SHR:共享内存大小????什么是共享内存
S:D=不可中断的睡眠状态 R=运行 S=睡眠 T=跟踪/停止 Z=僵尸进程
TIME 进程使用的CPU时间总计
TIME+ 进程使用的CPU时间总计,单位1/100秒
COMMAND:命令名/命令行
PPID 父进程id
UID 进程所有者的用户id
GROUP 进程所有者的组名
TTY 启动进程的终端名,不是从终端启动的进程显示为?
P 最后使用的CPU,仅在多cpu下有意义
WCHAN 若该进程在睡眠,则显示睡眠中的系统函数名
totalfree = free + buffers + cached
使用top的一些小技巧
内部交互命令:
u:使用top监视特定用户
k:终止指定进程
1:监控每个逻辑CPU的状况
b:运行状态的进程高亮显示,可以通过键盘y来取消或加入
x:进入top后,按键盘x(通过"shift + >"或"shift + <"可以向右或向左排序)
z:使显示以更加舒适的颜色显示
i:忽略闲置或僵死的进程
T 根据时间/累计时间进行排序
P 根据CPU使用百分比大小进行排序
M 根据驻留内存大小进行排序
c 切换显示命令行名称和完整命令行
f或者F:从当前显示中添加或者删除项目
s:改变两次刷新之间的延迟时间(这里可设置为0.5s)
r:重新安排一个进程的优先级级别,系统提示用户输入需要改变的进程PID以及需要设置的进程优先级值,输入一个正值将使优先级降低,反之则可以使该进程拥有更高的优先权。默认值是10
R:切换由大到小和由小到大排序顺序
e:切换显示单位,以m、g、t、p显示
H:显示线程信息
外部命令:
1、指定两次屏幕信息刷新的间隔
top -d 或者使用交互命令s
2、指定监控进程ID来仅仅监控某个进程的状态
top -p 3222,3122
3、显示进程的命令行参数
top -c
4、将top输出内容重定向到文件
top -b -n 2 -d 3 > /tmp/aaa
-b:可以重定向到文件中
-n:一共取两次top数据
-d:每次top数据间隔为3秒