top命令是Linux下常用的性能分析工具
第一行:任务队列信息,同 uptime 命令的执行结果
系统时间:10:16:31
运行时间:up 5 days,
当前登录用户: 7 user
负载均衡(uptime) load average: 1.16, 1.28, 1.39
average后面的三个数分别是1分钟、5分钟、15分钟的负载情况。
load average数据是每隔5秒钟检查一次活跃的进程数,然后按特定算法计算出的数值。如果这个数除以逻辑CPU的数量,结果高于5的时候就表明系统在超负荷运转了
第二行 :Tasks — 任务(进程)
Tasks: 238 total, 1 running, 235 sleeping, 0 stopped, 2 zombie
总进程:238 total, 运行:1 running, 休眠:235 sleeping, 停止: 0 stopped, 僵尸进程: 2 zombie
第三行:cpu状态信息
在Linux系统中,CPU的时间消耗主要在这几个方面:用户进程、内核进程、中断处理、I/O等待、Nice时间、丢失时间、空闲等几个部分,而CPU的利用率则为这些时间所占用的总时间的百分比。通过CPU的利用率,能够反映出CPU的使用和消耗情况。
0.0%us【user space】— 用户空间占用CPU的百分比。
用户时间(User Time)即us所对应的列,表示CPU执行用户进程所占用的时间,通常情况下希望us的占比越高越好
0.3%sy【sysctl】— 内核空间占用CPU的百分比。
系统时间(System Time)即sy所对应该的列,表示CPU自内核态所花费的时间,sy占比比较高通常意味着系统在某些方面设计得不合理,比如频繁的系统调用导致的用户态和内核态的频繁切换
0.0%ni【】— 改变过优先级的进程占用CPU的百分比
Nice时间(Nice Time)即ni所对应的列,表示系统在调整进程优先级的时候所花费的时间
99.7%id【idolt】— 空闲CPU百分比
空闲时间(Idle Time)即id所对应的列,表示系统处于空闲期,等待进程运行,这个过程所占用的时间。当然,我们希望id的占比越低越好
0.0%wa【wait】— IO等待占用CPU的百分比
等待时间(Waiting Time)即wa所对应的列,表示CPU在等待I/O操作所花费的时间,系统不应该花费大量的时间来进行等待,否则便表示可能有某个地方设计不合理
0.0%hi【Hardware IRQ】— 硬中断占用CPU的百分比
硬件中断处理时间(Hard Irq Time)即hi对应的列,表示系统处理硬件中断所占用的时间
0.0%si【Software Interrupts】— 软中断占用CPU的百分比
软件中断处理时间(Soft Irq Time)即si对应的列,表示系统处理软件中断所占用的时间
0.0% st【Steal Time】— 表示被强制等待虚拟CPU的时间
丢失时间(Steal Time)即st对应的列,实在硬件虚拟化开始流行后操作系统新增的一列,表示被强制等待虚拟CPU的时间
第四行:内存状态
7642148 total, 1191568 free, 2771352 used, 3679228 buff/cache【缓存的内存量】
第五行:swap交换分区信息
29360124 total, 29360072 free, 52 used. 4108208 avail Mem
第六行,空行
第七行以下:各进程(任务)的状态监控
- PID — 进程id
- USER — 进程所有者
- PR — 进程优先级
- NI — nice值。负值表示高优先级,正值表示低优先级
- VIRT — 进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES
- RES — 进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA
- SHR — 共享内存大小,单位kb
- S —进程状态。D=不可中断的睡眠状态 R=运行 S=睡眠 T=跟踪/停止 Z=僵尸进程
- %CPU — 上次更新到现在的CPU时间占用百分比
- %MEM — 进程使用的物理内存百分比
- TIME+ — 进程使用的CPU时间总计,单位1/100秒
- COMMAND — 进程名称(命令名/命令行)
top使用方法
使用格式:
top [-] [d] [p] [q] [c] [C] [S] [s] [n]
参数说明:
d:指定每两次屏幕信息刷新之间的时间间隔。当然用户可以使用s交互命令来改变之。
p:通过指定监控进程ID来仅仅监控某个进程的状态。
q:该选项将使top没有任何延迟的进行刷新。如果调用程序有超级用户权限,那么top将以尽可能高的优先级运行。
S:指定累计模式。
s:使top命令在安全模式中运行。这将去除交互命令所带来的潜在危险。
i:使top不显示任何闲置或者僵死进程。
c:显示整个命令行而不只是显示命令名。