输入top可进入动态cpu分析界面,默认每3秒刷新并按%cpu降序排列进程;顶部%cpu(s)行含us(用户态)、sy(内核态)、wa(i/o等待)、id(空闲)四项,分别反映不同负载来源。

直接输入 top 并回车,就能进入动态 CPU 分析界面。它默认每 3 秒刷新一次,进程列表按 %CPU 降序排列,最高占用的进程自动排在最上面——这是定位 CPU 瓶颈最快的第一步。
看懂顶部 CPU 指标含义
顶部的 %Cpu(s) 行不是单个数字,而是多个关键分项:
- us(user):用户态程序占用 CPU 的时间。数值高,说明应用层代码(如 Python、Java、Nginx 工作线程)正在密集计算
- sy(system):内核态消耗。明显高于 us 时,可能频繁系统调用(如大量 open/read/write)、上下文切换或锁竞争
- wa(I/O wait):CPU 在等磁盘或网络响应。持续 >10%,说明 I/O 成为瓶颈,不是 CPU 真忙,而是“干等”
- id(idle):空闲比例。若 id 长期 >90%,但业务响应慢,问题大概率不在 CPU,需查网络、数据库连接或应用逻辑阻塞
精准定位高 CPU 进程
默认排序已按 %CPU 降序,但还需结合其他维度交叉验证:
Zynq‑7000 / Zynq UltraScale+ 硬件调试技能。适用于 Xilinx Zynq(Cortex‑A9/A53 + FPGA)Linux 环境,调试 I2C、I2S、UART、GPIO 等外设。包括设备树配置、内核驱动、用户空间调试工具、交叉编译和常见问题排查,支持 PetaLinux 开发。
- 按 M 键切换为按 %MEM 排序,排除“内存不足→频繁 swap→间接拉高 sy/wa”的误判
- 按 1 键展开多核视图,观察是否单核打满(如 CPU0 达 98% 而其余核
- 按 c 键显示完整命令行,避免多个 java 或 node 进程仅靠名字无法区分,靠参数识别真实服务
- 按 H 键切换线程模式(或启动时加 -H),确认是进程级还是某一线程异常飙高
配合命令深入归因
top 是入口,不是终点。发现可疑进程后,立刻补查:
- CPU 高但 us 低、sy 高 → 执行 strace -p PID -c 统计系统调用耗时分布
- wa 高 → 运行 iostat -x 1 查 %util 是否接近 100%、await 是否显著升高
- 想确认是否 Java 应用堆外内存或 GC 导致 → 同时开另一个终端跑 jstat -gc PID
- 需要导出数据做趋势分析 → 启动时加 top -b -n 5 -d 2 > cpu.log(5 次快照,间隔 2 秒)
不复杂但容易忽略










