凌峰创科服务平台

Linux服务器CPU如何查看?

在Linux系统中,监控和管理服务器CPU资源是系统管理员的核心任务之一,通过命令行工具,可以实时获取CPU使用率、负载情况、核心数量等关键信息,从而及时发现性能瓶颈或异常进程,以下是常用的CPU查看方法及详细解析。

Linux服务器CPU如何查看?-图1
(图片来源网络,侵删)

基础命令:top与htop

top是最经典的进程监控工具,默认按CPU使用率排序,动态显示进程信息,执行top后,首部区域会展示整体CPU状态:

  • %us:用户空间占用CPU百分比
  • %sy:内核空间占用CPU百分比
  • %id:空闲CPU百分比
  • %wa:等待I/O的CPU百分比
  • %st:虚拟机占用物理CPU的百分比(若存在)

%us%sy持续超过80%,而%id低于20%,说明CPU负载较高,通过top的交互命令,可按P(CPU排序)、M(内存排序)或k(终止进程)进行操作。

htoptop的增强版,支持彩色显示、进程树可视化及鼠标操作,安装后直接执行htop即可获得更直观的界面。

静态信息查看:lscpu与/proc/cpuinfo

若需获取CPU的静态配置信息,可使用lscpu命令,该命令会输出CPU架构、核心数、线程数、最大频率等详细信息,

Linux服务器CPU如何查看?-图2
(图片来源网络,侵删)
Architecture:                    x86_64
CPU op-mode(s):                  32-bit, 64-bit
Byte Order:                      Little Endian
CPU(s):                          8          # 逻辑核心数
On-line CPU(s) list:             0-7
Thread(s) per core:              2          # 每个核心的线程数
Core(s) per socket:              4          # 每个插槽的核心数
Socket(s):                       1          # CPU插槽数量

更底层的信息可通过cat /proc/cpuinfo查看,该文件包含每个逻辑核心的详细参数,如型号、缓存大小、指令集支持等。

负载监控:uptime与w

uptime命令显示系统运行时间及平均负载值(1分钟、5分钟、15分钟)。

15:30:00 up 10 days,  3:45,  2 users,  load average: 1.5, 1.2, 0.8

负载值应与CPU核心数对比,若核心数为8,1分钟负载1.5表示CPU负载较低(1.5<8),但若持续超过核心数,则可能存在性能问题。w命令类似,还包含当前用户及进程数信息。

多核CPU监控:mpstat

mpstat属于sysstat工具包,需安装后使用,通过mpstat -P ALL 1可查看每个核心的独立CPU使用率,

Linux服务器CPU如何查看?-图3
(图片来源网络,侵删)
Linux 5.4.0-91-generic (server)  10/15/2025  _x86_64_  (8 CPU)
15:30:01  CPU    %usr  %nice  %sys  %iowait  %irq  %soft  %steal  %guest  %gnice  %idle
15:30:01  all    15.2   0.1   8.3    2.1    0.0    0.2    0.0     0.0     0.0    74.1
15:30:01    0    12.3   0.0   7.5    1.8    0.0    0.1    0.0     0.0     0.0    78.3
15:30:01    1    18.1   0.2   9.2    2.5    0.0    0.3    0.0     0.0     0.0    69.7

通过对比各核心的%usr%sys,可定位是否存在核心负载不均的情况(如某个核心持续高负载)。

进程级CPU分析:ps与pidstat

若需定位具体高CPU占用进程,可使用ps -eo pid,ppid,cmd,%cpu --sort=-%cpu,按CPU使用率降序排列进程,更精细的分析可通过pidstat -p <PID> 1实现,

15:30:01  PID  %usr  %system  %guest  %CPU   Command
15:30:01 1234  45.2    12.1     0.0    57.3  java

若发现异常进程(如非业务程序占用高CPU),可结合stracegdb进一步分析。

CPU性能计数器:perf

对于深度性能分析,perf工具可提供硬件级别的CPU事件统计,如缓存命中率、分支预测失败等。perf top可实时显示占用CPU最多的函数,perf record -g ./app后通过perf report生成火焰图,定位代码瓶颈。

表格总结常用命令

命令 功能描述 示例参数 输出示例关键信息
top 动态进程监控 -d 5(刷新间隔5秒) %us, %sy, 进程CPU占用
htop 增强版进程监控 -u username 彩色进程树,实时负载曲线
lscpu CPU静态信息 -e(显示扩展信息) 核心数、线程数、最大频率
uptime 系统负载与运行时间 load average: 1.5, 1.2, 0.8
mpstat 多核CPU使用率 -P ALL 1 各核心%usr, %sys
ps 进程状态与CPU占用 -eo pid,%cpu --sort 进程PID及CPU百分比
pidstat 进程级CPU统计 -p 1234 1 进程详细CPU使用分解
perf CPU性能事件分析 top 热点函数、硬件事件计数

相关问答FAQs

Q1: 如何判断服务器CPU是否过载?
A1: 综合多个指标判断:①uptime中15分钟负载持续超过CPU核心数;②tophtop%us+%sy超过80%且%id低于20%持续5分钟以上;③mpstat显示单个核心负载超过90%,同时需结合I/O等待(%wa)判断是否为CPU瓶颈或磁盘瓶颈。

Q2: 发现某个进程CPU占用100%,如何进一步排查?
A2: 可分三步处理:①用ps -ef | grep <PID>确认进程身份及启动命令;②通过strace -p <PID>跟踪系统调用,定位卡顿点;③若为Java/Python等进程,使用jstackpy-spy生成线程堆栈,分析死锁或无限循环,若为恶意进程,立即终止并查杀。

分享:
扫描分享到社交APP
上一篇
下一篇