Linux Command:top
Posted on Wed, 25 Dec 2024 13:58:42 +0800 by LiangMingJian
概述
在 Linux 中,top 命令常用于监控系统运行状况,是常用的性能分析工具,能够实时显示系统中各个进程的 CPU, 内存等资源占用情况。
在 Linux 中,唤起 top 界面只需如下输入命令即可:
# 唤起 top
top
# 特别的,可以通过 -p 参数指定一个进程进行监控
top -p pid
top 的统计信息
第1行
top - 05:43:27 up 4:52, 2 users, load average: 0.58, 0.41, 0.30
| 内容 | 含义 |
|---|---|
| top | 标题 |
| 05:43:27 | 系统当前时间 |
| up 4:52 | 系统运行时间,格式为时:分 |
| 2 users | 当前登录用户数 |
| load average: 0.58, 0.41, 0.30 | 系统过去 1分钟、5分钟、15分钟到现在的负载平均值。如果这个数除以逻辑CPU的数量,结果高于70的时候就表明系统在超负荷运转(每个逻辑 CPU 的系统占用都超过 70%)。 |
第2行
Tasks: 746 total, 1 running, 745 sleeping, 0 stopped, 0 zombie
| 内容 | 含义 |
|---|---|
| Tasks | 进程统计信息 |
| total | 总数 |
| running | 运行中数 |
| sleeping | 睡眠数 |
| stopped | 停止数 |
| zombie | 僵尸进程数,如果存在则说明有程序未正常结束,在异常消耗资源 |
第3行
%Cpu(s): 37.0 us, 3.7 sy, 0.0 ni, 59.3 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
这里在用户使用功能键
1时,会显示每一个逻辑 CPU 的值,而不是 %Cpu(s)
| 内容 | 含义 |
|---|---|
| %Cpu(s) | CPU信息,(s)表示不止一个,多个CPU |
| us | 用户空间占用CPU百分比 |
| sy | 内核空间占用CPU百分比 |
| ni | 用户进程空间内改变过优先级的进程占用CPU百分比 |
| id | 空闲CPU百分比 |
| wa | 等待输入输出的CPU时间百分比 |
| hi | 硬中断(Hardware IRQ)占用CPU的百分比 |
| si | 软中断(Software Interrupts)占用CPU的百分比 |
| st | 系统花费百分之多少时间等待真正的cpu资源。该参量常用于虚拟化系统上,在正常情况下虚拟机的st最好为0,这表明你的虚拟机得到了所有必要的cpu资源,在使用时不用等待。如果这个值为50,则表明你的虚拟机在运行时有一半时间在等待CPU,存在其他虚拟机与你竞争资源。 |
第4行
KiB Mem : 7990288 total, 3173076 free, 2748968 used, 2068244 buff/cache
| 内容 | 含义 |
|---|---|
| KiB Mem | 物理内存信息 |
| total | 物理内存总量 |
| free | 空闲内存总量 |
| used | 使用的物理内存总量 |
| buff/cache | 用作内核缓存的内存量 |
第5行
KiB Swap: 8257532 total, 8257532 free, 0 used. 4615016 avail Mem
| 内容 | 含义 |
|---|---|
| KiB Swap | 硬盘交换内存、虚拟内存信息 |
| total | 总量 |
| free | 空闲 |
| used | 使用 |
| avail Mem | 可用于进程下一次分配的内存数量 |
计算可用内存数公式 = 第四行的 free + 第四行的 buffers + 第五行的 avail Mem
top 的进程信息
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
在这里,需要注意 %CPU 的占用,有多少个逻辑 CPU 数量,则 %CPU 最多能到达逻辑 CPU 数量 * 100% 的数值,比如 2 核 CPU,这里最大能占用 200%。
| 内容 | 含义 |
|---|---|
| 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+ | 进程运行时间 |
| COMMAND | 命令名/命令行 |
top 的指令功能
在 top 命令运行时,用户可以输入以下按键执行相应的功能(注意区分大小写):
| 按键 | 功能 |
|---|---|
| ? | 查看支持的功能按键 |
| b | 粗体高亮显示 |
| c | 显示完整的进程命令 |
| E | 切换统计栏的内存单位,默认KB |
| e | 切换进程栏的内存单位,默认KB |
| t | 切换统计栏的 CPU 展示方式 |
| m | 切换统计栏的内存展示方式 |
| 1 | 展开统计栏的逻辑 CPU 信息 |
| f | 设置进程栏的统计信息和排序。在该功能中,允许 top 收集更多的进程信息与设置当前的排序方式。 |
| L | 查找 |
| > 或 < | 改变当前排序列 |
| P | 以 CPU 的使用资源排序显示 |
| M | 以内存的使用资源排序显示 |
| N | 以 pid 排序显示 |
| T | 由进程使用的时间累计排序显示 |
| k | 给某一个 pid 一个信号,杀死进程 |
| q 或 Ctrl+C | 退出top |
上述表格仅展示常用功能按键,更多按键请查看 ?帮助手册。