Linux-top命令详解

Linux-top命令详解

作者:Danbo 时间:2015-7-9

统计信息区
第一行:队伍队列信息,同uptime命令的执行结果
23:32:15 - 表示系统时间
up 42 min - 系统已经运行了42分钟了
1 user - 当前有一个用户登录系统
load average: 0.01, 0.00, 0.00 - 分别表示1min、5min、15min系统负载情况,这些数据是每隔5s种检查一次活跃的进程数,然后按特定算法计算出的数值。如果这个数除以逻辑CPU的数量,结果高于5的时候就表明系统在超负荷运行。

第二行:任务进程
系统共108个进程,1个处于运行,107处于休眠,0个stopped,0个zombie

第三行:CPU状态信息
0.0%us - 用户空间占用CPU的百分比
0.2%sy - 系统占用CPU的百分比
0.0%ni - 改变过优先级的进程占用CPU的百分比
99.8%id - 空闲CPU百分比
0.0%wa - IO等待占用CPU的百分比
0.0%hi - 硬中断占用CPU的百分比
0.0%si - 软中断占用CPU的百分比
0.0%st - 是当hypervisor服务器另一个虚拟处理器的时候,虚拟CPU等待实际CPU的时间的百分比。当st值比较高的话,你需要向主机供应商申请扩容虚拟机。服务器上的另一个虚拟机可能拥有更大更多的CPU时间片,你可能需要申请升级以与之竞争。另外高steal值可能意味着主机供应商在服务器上过量地出售虚拟机。如果升级了虚拟机,steal值还不降的话,你应该寻找另一家服务供应商。

第四行:内存状态
Mem:   3909764k total,   256228k used,  3653536k free,    31100k buffers

第五行:swap交换分区信息
Swap:  2097148k total,        0k used,  2097148k free,    75676k cached

PS:第四行使用中的内存总量(used)指的是现在系统内核控制的内存数,空闲内存总量(free)内核还未纳入其管控范围的数量。纳入内核管理的内存不见得都在使用中,还包括过去使用过的现在可以被重新利用的内存,内核并不把这些可被重新使用的内存交还到free中去,因此在linux上free内存会越来越少,但是不必担心。
如果出于Windows下使用的习惯(出于蛋疼)去计算可用的内存数:free+buffers+cached
对于内存监控,在top里我们要时刻监控第五行swap交换分区的used,如果这个数值在不断的变化,说明内核在不断进行内存和swap的数值交换,这是真正的内存不过用了。

第六行:各进程(任务)的状态监控
PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
PID - 进程id 
USER - 进程所有者 
PR - 进程优先级 
NI - nice值(负值表示高优先级,正值表示低优先级)
VIRT - 进程使用的虚拟内存总量,单位kb。(Virtula Memory Usage)
1.进程“需要的”虚拟内存大小,包括进程使用的库、代码、数据等
2.假如进程申请100MB的内存,但实际只使用了10MB,那么它会增长100MB,而不是实际使用量。

RES - 常驻内存,进程使用的、未被换出的物理内存大小。(Resident Menory Usage)
1.进程当前使用的内存大小,但不包括swap out
2.包括其他进程的共享
3.如果申请100MB的内存,实际使用10MB,它只增长10MB。注意与VIRT区别。
4.关于库占用的情况,它只统计加载的库文件所占内存。

SHR - 共享内存大小
1.除了自身进程的共享内存,也包括其他进程的共享内存。
2.虽然进程只使用了几个共享库的函数,但它包含了整个共享库的大小。
3.计算某个进程所占的物理内存大小公式:RES - SHR。
4.交换出去(Swap Out)后,它将会降下来。

DATA(如果没显示,按f键就可以显示)
真正的该程序要求的数据空间,是真正在运行中要使用的。

S - 进程状态。D=不可中断的休眠状态 R=运行 S=睡眠 T=跟踪/停止 Z=僵尸
%CPU - 上次更新到现在的CPU时间占用百分比
%MEM - 进程使用的物理内存百分比
%TIME+ - 进程使用的CPU时间总计,单位1/100s
COMMAND - 进程名称(命令名/命令行)

其他使用命令:
1 - 可监控每个逻辑CPU的状况

b - 高亮显示当前运行进程

当我们按下后,我们发现PID为2848的“top”进程被加亮了,top进程就是上图第二行显示唯一的Running的那个进程。可以通过y键关闭或打开运行进程的加亮效果。

进程字段排序:默认进入top时,各进程是按照CPU的占用来排序。这个可以通过“shift + >”或者“shift + <”来选择按照哪一列排序。

常用命令:
top -c:显示完整命令
top -b:以批处理模式显示程序信息
top -S:以累计模式系那是程序信息
top -n 2:设置信息更新次数,更新2次就终止更新并退出
top -d 3:设置信息更新周期
top -p 1:显示指定的进程信息

top交互命令
h 显示帮助画面,给出一些简单的命令总结说明
k 终止一个进程。
i 忽略闲置和僵死进程。这是一个开关式命令。
q 退出程序
r 重新安排一个进程的优先级
S 切换到累计模式
s 改变两次花心之间的延迟,如果有小数,就环城ms。输入0值则系统将不断刷新,默认值为5s
f或则F:从当前显示中添加或删除项目
o或O:改变显示项目的顺序
l 切换显示平均负载和显示启动信息
m 切换显示内存信息
t 切换显示进程和CPU状态信息
M 根据驻留内存大小进行排序
P 根据CPU使用百分比大小进行排序
T 根据时间/累计时间进行排序
W 将当当前设置写入~/.toprc文件中去。

原文地址:https://www.cnblogs.com/danbo/p/4633614.html