详细分析top命令的各输出参数的意思
第一行:同uptime命令
- system time:系统当前时间15:29:53
- system uptime:系统运行时间645天2小时25分
- users:当前登入系统的用户数4
- load average:过去的1分钟,5分钟,15分钟系统的负载情况(详情点击)。
第二行:进程相关
- 221: 进程总数。
- 1:运行进程数目。正在运行和等待运行的进程(运行态和就绪态)。
- 220: 阻塞进程数目。(等待IO或者调用sleep函数)
- 0:停止状态进程数目。(收到STOP信号后获得停止状态,收到CONT信号,失去STOP状态;ctrl+z发送STOP信号)。
- 0:僵尸进程数目。(子进程已死,但没有被父进程回收)
第三行:同mpstat命令
- usr:用户空间CPU使用占比
- sys:内核空间CPU使用占比
- nice:低优先级进程使用CPU占比(nice值大于0的进程)
- idle:CPU空闲时间占比
- io wait:CPU等待IO占比
- irq/hi:CPU处理硬中断占比
- soft/si:CPU处理软中断占比
- guest与steal与虚拟机有关。
硬中断和软中断的区别
- 软中断是执行中断指令产生的,而硬中断是由外设引发的。
- 硬中断的中断号是由中断控制器提供的,软中断的中断号由指令直接指出,无需使用中断控制器。
- 硬中断是可屏蔽的,软中断不可屏蔽。
- 硬中断处理程序要确保它能快速地完成任务,这样程序执行时才不会等待较长时间,称为上半部。
- 软中断处理硬中断未完成的工作,是一种推后执行的机制,属于下半部
第四行:同free命令(详情点击)
进程信息标题
- PID: 进程标识符
- USER: 进程拥有者
- PR: 进程优先权 [数越小,进程优先级越高]
- NI: NICE Value [PR = PR + NI,因此,NI为负数,PR小,优先级高;NI可以手动调整]
- VIRT: 进程虚拟内存大小 [进程总得寻址空间大小]
- RES: 进程实际占用物理内存大小
- SHR: 共享内存大小
- S: 进程状态(D=不可中断的睡眠状态,R=运行,S=睡眠,T=跟踪/停止,Z=僵尸进程)
- CPU: 进程CPU占用率
- MEM: 进程内存占用率
- TIME+: 进程运行占用的CPU时间
- COMMAND: 启动进程的命令
- DATA: 是进程栈、堆申请的总空间。
RES进程实际占用物理内存大小,与%MEM强相关。
SHR其他进程共享的内存空间。比如,依赖一个C公共库,那么整个库的地址空间被加入VIRT,而被载入内存的公共库函数被算入RES与SHR。
相关命令参数
- M//可以按RES进程占用的实际内存(%MEM)排序显示(ps aux –sort –rss)
- P//按cpu占用率排序
- 1//看各个cpu使用率
- G2//查看PPID
- o//选择显示其他字段,按esc退出。(如DATA字段,默认隐藏)
查占用CPU最高的进程
top -b -n 1 | awk '($1 ~ /[0-9]/){a[$1]=$9}END{max=0; for(i in a){if(max<a[i]){max=a[i]}};print int(max)}'