top命令查看CPU使用率top是Linux系统最常用的实时系统监控工具,可动态显示CPU、内存、进程等资源的使用情况。
启动与基本布局:在终端输入top,界面分为统计信息区(顶部)和进程列表区(底部)。
统计信息区的CPU解读:
关注%Cpu(s)行,其包含以下关键指标(以单核CPU为例):
%us:用户空间程序占用CPU百分比(如应用程序、脚本等);%sy:内核空间程序占用CPU百分比(如系统调用、驱动程序等);%id:CPU空闲百分比;%wa:CPU等待I/O操作的时间百分比(如磁盘读写);%hi/%si:处理硬中断/软中断的时间百分比;%st:被虚拟机“偷走”的CPU时间(仅虚拟化环境中存在)。1键可展开每个CPU核心的详细使用率(如Cpu0、Cpu1等)。进程列表区的CPU解读:
进程列表中%CPU列表示该进程占用的CPU百分比(默认按%CPU降序排列)。通过此列可快速定位高CPU占用的进程(如top命令本身可能占用较高CPU)。
htop命令查看CPU使用率(增强版top)htop是top的交互式增强工具,提供更直观的界面和更多功能(需安装:sudo apt install htop(Debian/Ubuntu)、sudo yum install htop(CentOS/RHEL))。
启动与界面布局:输入htop,界面顶部显示CPU、内存、Swap的使用情况(如0: 30.0%表示CPU0占用30%),下方为进程列表。
CPU使用率解读:
%CPU列显示进程占用的CPU百分比,可通过F6键选择按%CPU排序。交互优势:
F2可设置排序方式(如按内存排序)、过滤进程;F9可直接杀死高CPU进程(无需输入PID);mpstat命令查看多核CPU详细使用率mpstat是sysstat工具包中的命令,用于显示每个CPU核心的详细使用率(需安装:sudo apt install sysstat)。
mpstat -P ALL 1:每1秒显示一次所有CPU核心的使用率(-P ALL表示所有核心,1表示刷新间隔);CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle
all 15.63 0.00 2.18 0.50 0.00 0.50 0.00 0.00 0.00 81.19
0 12.34 0.00 1.78 0.30 0.00 0.30 0.00 0.00 0.00 85.28
1 18.90 0.00 2.56 0.70 0.00 0.70 0.00 0.00 0.00 77.14
%usr(用户空间)、%sys(内核空间)、%iowait(I/O等待)、%idle(空闲),可对比各核心的负载是否均衡。/proc/stat文件查看CPU原始统计信息/proc/stat文件包含CPU活动的详细统计信息(如用户态、内核态、空闲时间等),可用于编写脚本计算CPU使用率。
cat /proc/stat,输出示例:cpu 123456 7890 23456 987654 3456 789 123 456 0 0
cpu0 61728 3945 11728 493827 1728 394 61 228 0 0
cpu1 61728 3945 11728 493827 1728 394 61 228 0 0
user(用户态时间)、nice(nice值调整后的用户态时间)、system(内核态时间)、idle(空闲时间)、iowait(I/O等待时间)等。/proc/stat的数据,计算(total2 - total1 - (idle2 - idle1)) / (total2 - total1) * 100%(total为所有时间之和,idle为空闲时间)。lscpu命令查看CPU基本信息(辅助分析)lscpu命令可查看CPU的架构、核心数、线程数等信息,帮助理解CPU使用率的上下文(如多核CPU的负载均衡)。
CPU(s):逻辑CPU数量(如4表示4个逻辑核心);On-line CPU(s) list:在线的CPU核心;NUMA node(s):NUMA节点数量;Thread(s) per core:每个核心的线程数(如2表示超线程技术)。以上方法覆盖了从实时监控到详细分析的不同需求,可根据场景选择使用。例如:
top或htop;mpstat或htop;/proc/stat;lscpu。