top 是linux下常用的性能分析工具,能够实时显示各个进程资源占用情况,类似于windows的任务管理器。
top[参数]
-b 批处理模式,不会显示顶端内容
-c 显示完整的命令路径
-s 安全模式
-S 积累模式
-i 时间 设置刷新间隔
-u 用户名 指定用户名
-u 进程号 指定进程
-n 次数 指定循环显示次数
[root@Nagios~]# top
top - 17:26:45 up 49 days, 2:26, 1 user, load average: 0.13, 0.23,0.26
Tasks: 147 total, 1 running, 146 sleeping, 0 stopped, 0 zombie
Cpu(s): 39.5%us, 8.4%sy, 0.0%ni, 51.8%id, 0.0%wa, 0.3%hi, 0.0%si, 0.0%st
Mem: 1012616k total, 875372kused, 137244k free, 156124k buffers
Swap: 2097144k total, 1556kused, 2095588k free, 279464k cached
PIDUSER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
61262 nagios 20 0 29876 3232 1220 S 1.3 0.3 26:20.88 nagios
20root 20 0 0 0 0 S 0.3 0.0 188:58.88 ata/0
1471root 20 0 20216 1140 976 S 0.3 0.1 148:49.71 hald-addon-stor
8239root 20 0 15032 1284 952 R 0.3 0.1 0:00.02 top
解释:
第一行:基本信息
17:26:45 ————————时间
up 49 days————————系统运行时间
1 user——————————当前用户数量(连接的)
load average: 0.48, 0.33, 0.27——系统负载:1分钟,5分钟,15分钟
第二行:进程信息
Tasks: 1082 total——————进程总数
3 running——————————正在运行的进程数
1079 sleeping————————睡眠的进程数
0 stopped,——————————停止的进程数
0 zombie———————————僵尸进程数
第三行:CPU信息
Cpu(s): 0.2%us————————用户空间用CPU百分比
0.2%sy————————————内核空间占用CPU百分比
0.0%ni————————————用户进程改变过优先级的进程数
99.6%id————————————CPU空闲百分比
0.0%wa————————————等待输入输出的的CPU时间百分比
0.0%hi——————————————硬中断(Hardware IRQ)占用CPU的百分比
0.0%si——————————————软中断(Software Interrupts)占用CPU的百分比
0.0%st—————————————— 是当 hypervisor 服务另一个虚拟处理器的时候,虚拟 CPU 等待实际 CPU 的时间的百分比。
第四行:内存信息
Mem: 264646280k total——————总物理内存量
71097792k used——————————使用的物理内存总量
193548488k free——————————空闲的内存总量
398256k buffers——————————用作内核缓存的内存量
第五行:交换分区信息
Swap: 41943036k total————————交换分区总量
0k used, 41943036k free ————————空闲的交换分区
3231296k cached————————————缓冲的交换区总量。 内存中的内容被换出到交换区,而后又被换入到内存,但使用过的交换区尚未被覆盖, 该数值即为这些内容已存在于内存中的交换区的大小。相应的内存再次被换出时可不必再对交换区写入。
列名 |
含义 |
PID |
进程id |
PPID |
父进程id |
RUSER |
Real user name |
UID |
进程所有者的用户id |
USER |
进程所有者的用户名 |
GROUP |
进程所有者的组名 |
TTY |
启动进程的终端名。不是从终端启动的进程则显示为 ? |
PR |
优先级 |
NI |
nice值。负值表示高优先级,正值表示低优先级 |
P |
最后使用的CPU,仅在多CPU环境下有意义 |
%CPU |
上次更新到现在的CPU时间占用百分比 |
TIME |
进程使用的CPU时间总计,单位秒 |
TIME+ |
进程使用的CPU时间总计,单位1/100秒 |
%MEM |
进程使用的物理内存百分比 |
VIRT |
进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES |
SWAP |
进程使用的虚拟内存中,被换出的大小,单位kb。 |
RES |
进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA |
CODE |
可执行代码占用的物理内存大小,单位kb |
DATA |
可执行代码以外的部分(数据段+栈)占用的物理内存大小,单位kb |
SHR |
共享内存大小,单位kb |
nFLT |
页面错误次数 |
nDRT |
最后一次写入到现在,被修改过的页面数。 |
S |
进程状态。 |
COMMAND |
命令名/命令行 |
WCHAN |
若该进程在睡眠,则显示睡眠中的系统函数名 |
Flags |
任务标志,参考 sched.h |
在top 命令执行过程中可以使用的一些交互命令。这些命令都是单字母的,如果在命令行中使用了s 选项, 其中一些命令可能会被屏蔽。
h 显示帮助画面,给出一些简短的命令总结说明
k 终止一个进程。
i 忽略闲置和僵死进程。这是一个开关式命令。
q 退出程序
r 重新安排一个进程的优先级别
S 切换到累计模式
s 改变两次刷新之间的延迟时间(单位为s),如果有小数,就换算成m s。输入0值则系统将不断刷新,默认值是5 s
f或者F 从当前显示中添加或者删除项目
o或者O 改变显示项目的顺序
l 切换显示平均负载和启动时间信息
m 切换显示内存信息
t 切换显示进程和CPU状态信息
c 切换显示命令名称和完整命令行
M 根据驻留内存大小进行排序
P 根据CPU使用百分比大小进行排序
T 根据时间/累计时间进行排序
W 将当前设置写入~/.toprc文件中