1. 命令作用
top 是 Linux 系统实时资源监视器,相当于服务器的「任务管理器」。可以实时查看整机CPU、内存、IO状态,以及每一个进程的资源占用,是排查若依Java服务卡顿、CPU飙高、内存溢出的核心命令。
2. 进入与退出
终端输入 top 进入实时监控界面,按 q 退出。

3. 常用快捷键(生产必备)
-
P:按CPU使用率降序排序
-
M:按内存使用率降序排序
-
1:展示所有CPU核心负载
-
k:输入PID强制杀死异常进程
4. 头部CPU字段逐字解析
Cpu(s): 2.1 us, 0.8 sy, 0.0 ni, 96.0 id, 0.4 wa
-
us(用户CPU):业务程序占用CPU(Java若依、Nginx、MySQL)。us长期80%+ 代表代码逻辑有问题、死循环、大数据运算。
-
sy(系统CPU):系统内核占用,过高代表系统资源调度异常。
-
id(空闲CPU):空闲资源,越高服务器越闲。
-
wa(IO等待) :磁盘IO等待耗时。wa>10% 属于严重异常,磁盘瓶颈、MySQL慢查询、日志暴涨导致。
5. 进程列表核心字段
-
PID:进程唯一ID,杀进程、查日志必备
-
USER:进程运行用户(宝塔网站一般www,系统程序root)
-
%CPU:单进程CPU占用
-
%MEM:单进程内存占用
-
COMMAND:进程名称
6. 生产高危进程识别
-
java 高占用:若依服务GC频繁、死循环、大数据导出
-
mysqld 高占用:数据库无索引、全表扫描、慢SQL堆积
-
xmrig、minerd:挖矿木马,立即查杀
-
大量nginx进程:爬虫、CC攻击恶意请求
7. 生产使用注意事项与避坑点
-
top默认动态刷新,占用少量系统资源,高负载服务器请勿长时间挂着监控,避免加重服务器压力。
-
区分临时进程与常驻进程:打包、备份等临时进程CPU冲高为正常现象,常驻的java、mysqld进程持续高占用才是异常。
-
谨慎使用k命令杀进程,尤其是root运行的系统核心进程,误杀会导致服务器宕机、服务崩溃。
-
若依服务CPU异常偏高时,优先排查代码逻辑、GC问题、数据库查询,而非直接重启服务,避免问题反复复发。
-
wa值偏高优先排查磁盘和MySQL,不是CPU本身问题,切勿盲目升级CPU配置。