在Linux中,最常用的性能分析工具就是top,能够实时显示系统中各个进程的资源占用状况,同Windows系统中的资源管理器。
语法
top [-] [d delay] [q] [c] [S] [s] [i] [n] [b]
参数说明
参数 | 说明 |
b | 批次档模式,与"n"参数一起使用,将top的结果输出到文档 |
c | 切换显示模式:只显示执行档的名称、显示完整的路径与名称 |
d | 调整更新速度,同交互式指令列(interactive command)按s |
i | 不显示任何闲置(idle)或无用(zombie)的进程 |
n | 指定更新次数,然后自动退出top |
q | 实时显示,若用户具备superuser权限,则top将以最高优先级执行 |
S | 累积模式,会将己完成或消失的子行程的CPU time累积起来 |
s | 安全模式,取消交谈式指令 |
命令说明
命令 | 说明 |
Ctrl+L | 擦除并且重写屏幕 |
c | 切换显示命令名称和完整命令行 |
f, F | 从当前显示中添加或者删除项目 |
i | 忽略闲置和僵死进程 |
K | 终止一个进程,在安全模式中此命令被屏蔽。系统将提示用户输入需要终止的进程PID和信号,默认使用15信号,可以指定9信号强制结束该进程 |
l | 切换显示平均负载和启动时间信息 |
m | 切换显示内存信息 |
M | 根据驻留内存大小进行排序 |
o, O | 改变显示项目的顺序 |
P | 根据CPU使用率进行排序 |
q | 退出程序 |
r | 重新安排一个进程的优先级别。系统提示用户输入需要调整的进程PID和优先级值,默认值是10,值大于表示降低优先级 |
s | 改变两次刷新之间的延迟时间。系统将提示用户输入新的时间,单位为s,如果有小数,就换算成ms,输入0值则系统将不断刷新,默认值是5s |
S | 切换到累计模式 |
t | 切换显示进程和CPU状态信息 |
T | 根据时间/累计时间进行排序 |
W | 将当前设置写入~/.toprc文件 |
头部说明
第一行,任务队列信息,即uptime命令结果
- 系统当前时间
- up:运行时间
- user:当前登录用户
- load average:分别是1分钟、5分钟、15分钟的平均系统总负载,每隔5秒钟检查一次活跃的进程数,然后按特定算法计算出的
- 数值,负载值除以逻辑CPU的数量,当结果高于5的时候意味着系统正超负荷运行
第二行,进程统计信息
- total:总进程
- running:运行
- sleeping:休眠
- stopped:停止
- zombie:僵尸进程
第三行,CPU状态信息
- us:user space,用户空间占用CPU的百分比。
- sy:sysctl,内核空间占用CPU的百分比。
- ni:改变过优先级的进程占用CPU的百分比
- id:idolt,空闲CPU百分比
- wa:wait,IO等待占用CPU的百分比
- hi:Hardware IRQ,硬中断占用CPU的百分比
- si:Software Interrupts,软中断占用CPU的百分比
第四行,内存状态信息
- total:总内存
- used:已用,系统内核当前控制的内存数
- free:空闲,系统内核尚未纳入其管控范围的内存数
- buffers:缓存
第五行,交换分区信息
- total:总内存
- used:已用
- free:空闲
- cached:缓冲的交换区总量
附加知识
可用内存 = free + buffer + cached
交换分区的used值,当该值不断变化时,意味着内核在不断地进行内存和swap的数据交换,证明内存不够用了。
纳入内核管理的内存不一定都在使用中,因为它还包括过去使用过的现在可以被重复利用的内存,内核并不把这些可被重新使用的内存交还到free中去,因此linux中的free内存会越来越少。
原创文章禁止转载:技术学堂 » Linux性能分析工具top命令详解