在linux云服务器的日常运维中,top命令是最常用的实时性能监控工具,它能够动态展示系统整体的资源占用情况,以及各个进程的资源消耗细节,其中CPU相关的性能指标是判断服务器负载状态的核心依据。

top命令的基本使用方式
登录linux云服务器后,直接在终端输入top命令即可启动监控界面,默认情况下top会每隔3秒刷新一次数据。如果需要自定义刷新间隔,可以使用-d参数指定,比如设置每2秒刷新一次:
# 每2秒刷新一次top监控数据 top -d 2
启动top后,界面上半部分是系统整体的资源统计信息,下半部分是各个进程的详细资源占用情况,CPU相关的核心指标都位于上半部分的统计区域。
top中CPU性能指标的含义
top界面中CPU相关的行通常以%Cpu(s)开头,各项指标的具体含义如下:
| 指标名称 | 含义说明 |
|---|---|
| us | 用户空间进程占用CPU的百分比,也就是应用程序直接消耗的CPU资源 |
| sy | 内核空间进程占用CPU的百分比,主要是系统调用、内核任务消耗的CPU资源 |
| ni | 调整过优先级的用户进程占用CPU的百分比 |
| id | CPU空闲的百分比,数值越高说明CPU负载越低 |
| wa | CPU等待IO操作完成的百分比,数值过高通常说明磁盘IO存在瓶颈 |
| hi | 硬件中断占用CPU的百分比 |
| si | 软件中断占用CPU的百分比 |
| st | 被虚拟化层偷走的CPU时间百分比,仅云服务器环境会出现该指标 |
多核CPU的查看方式
默认情况下top展示的是所有CPU核心的平均占用情况,如果需要查看每个CPU核心的独立指标,可以在top运行界面按下数字键1,此时会展开显示每一个CPU核心的详细数据,再次按下1则会切换回平均显示模式。
结合进程定位CPU占用问题
如果整体CPU占用过高,需要进一步查看是哪个进程导致的,top下半部分的进程列表中%CPU列就是单个进程占用CPU的百分比。默认进程列表按照CPU占用从高到低排序,排在最上方的就是当前CPU消耗最高的进程。
如果需要查看某个进程的线程级CPU占用,可以先记录目标进程的PID,然后按下shift+h组合键,此时会切换到线程视图,展示该进程下所有线程的CPU占用情况,方便定位具体是哪个线程导致的资源消耗过高。
常用交互操作说明
- 按下
q键可以退出top监控界面 - 按下
P键可以按照CPU占用百分比对进程列表排序 - 按下
M键可以按照内存占用百分比对进程列表排序 - 按下
k键可以输入进程PID杀死指定进程 - 按下
f键可以自定义进程列表展示的字段
指标异常的判断标准
通常来说,如果id指标长期低于20%,说明CPU整体负载较高;如果wa指标长期高于30%,说明服务器存在IO瓶颈,需要排查磁盘读写性能;如果是云服务器环境,st指标如果长期高于10%,说明宿主机资源超售严重,可能影响自身服务器的性能表现。
当发现CPU占用异常的进程后,可以结合进程对应的服务类型判断是否为正常业务消耗,如果是异常进程占用过高,可以进一步查看进程的具体执行命令,必要时停止异常进程或者排查对应的代码逻辑问题。