在 Linux 服务器运维中,实时、精确地了解 CPU 性能是确保系统稳定和高效运行的关键。尤其是对于拥有多个物理核或逻辑核的现代服务器,仅仅查看“总 CPU 占用率”往往不足以诊断性能瓶颈。例如,一个核心可能被某个进程耗尽,而其他核心却空闲,这种情况下,总占用率可能不高,但应用响应依然缓慢。
作为一款广受好评的 SSH 客户端和服务器管理工具,FinalShell 不仅提供了强大的终端会话管理功能,还集成了便捷的 SFTP 文件传输和图形化监控界面。本文将深入探讨如何借助 FinalShell 强大的终端功能,结合 Linux 系统自带的命令行工具,实现对多核 CPU 每一核心详细占用率的实时监控与分析。通过本文的学习,您将能够更精准地定位服务器性能问题,优化资源配置。
为什么我们需要精确到核的 CPU 监控?
现代服务器通常配备多核 CPU,通过并行处理来提升性能。但在实际运行中,并非所有核心都能被平均利用。以下是精确到核的 CPU 监控至关重要的几个原因:
- 识别单核瓶颈:某些应用程序或服务可能仅使用一个 CPU 核心(单线程应用),即使服务器有多个核心,如果该核心被耗尽,整个应用性能也会受限,而其他核心可能完全空闲。此时,如果只看总 CPU 占用率,可能无法发现问题。
- 负载均衡分析:通过观察每个核心的占用率,可以判断进程是否在核心之间均匀分布,或者是否存在负载倾斜。这对于调优调度器或应用程序配置非常有帮助。
- 性能调优与故障排除:当系统出现卡顿或响应缓慢时,精细到核心的监控能帮助我们快速定位是某个特定核心超载,还是所有核心普遍高负载,从而指导我们进一步检查是进程问题、I/O 问题还是内存问题。
- 资源利用率评估:了解每个核心的使用情况,有助于评估当前硬件资源的利用率,为未来的扩容或缩容提供数据支持。
FinalShell 作为您的得力助手,其简洁高效的终端界面让执行这些复杂的监控命令变得轻而易举。如果您还没有使用 FinalShell,建议访问 FinalShell 官方下载渠道 获取最新版本,并按照 FinalShell Windows 安装与配置 的指引进行安装。
FinalShell 内置监控概览:快速诊断
FinalShell 客户端本身提供了一个直观的图形化监控面板,通常位于界面的右侧或底部。这个面板能够实时显示 CPU、内存、网络 I/O 等总体的资源使用情况。对于快速判断服务器负载状况,它非常方便。
然而,FinalShell 内置的图形化监控通常显示的是总体的 CPU 占用率,或者是一个所有核心的平均值。它无法像我们所期望的那样,精确地显示每一个独立 CPU 核心的详细使用率。当我们需要深入分析某个核心的负载情况,或判断是否存在单核瓶颈时,我们就需要借助强大的 Linux 命令行工具了。
接下来,我们将介绍几种在 FinalShell 终端中常用的 Linux 命令,它们能帮助我们实现精确到核的 CPU 监控。
核心工具一:使用 top 命令实时查看多核 CPU 详情
top 是 Linux 系统中最常用也最强大的性能监控工具之一,它能够实时显示系统中运行的进程,以及系统的整体资源使用情况。通过一个小技巧,我们就能让 top 命令显示每个 CPU 核心的详细占用率。
操作步骤:
- 在 FinalShell 中连接到您的 Linux 服务器。如果您是首次连接,可以参考 FinalShell 首次连接服务器 的教程。
- 在终端中输入
top命令并回车。top top界面显示后,您会看到一个类似于任务管理器的界面。默认情况下,它可能只显示一行 CPU 统计信息。- 按下键盘上的数字键
1。 神奇的事情发生了!top命令会立即展开 CPU 信息区域,显示每一个逻辑 CPU 核心的详细占用率。每个核心都会有一行独立的%Cpu(s):或Cpu开头的统计信息。

输出解读:
在 top 命令显示每个核心的统计信息中,您会看到以下关键指标:
us(User space): 用户空间程序占用的 CPU 百分比。高us通常意味着应用程序或用户进程正在大量使用 CPU。sy(System space): 内核空间程序占用的 CPU 百分比。高sy可能表示系统调用或内核任务繁忙。ni(Nice): 改变过优先级的用户进程占用的 CPU 百分比。id(Idle): 空闲 CPU 百分比。这个值越高,表示 CPU 越空闲。wa(IO Wait): 等待 I/O 操作完成的 CPU 百分比。高wa通常意味着磁盘 I/O 或网络 I/O 存在瓶颈。hi(Hardware IRQ): 处理硬件中断的 CPU 百分比。si(Software IRQ): 处理软件中断的 CPU 百分比。st(Steal time): 虚拟机管理程序(hypervisor)从当前虚拟机偷走的 CPU 百分比。这通常在虚拟化环境中出现,高st可能意味着宿主机过载。
通过观察每个核心的这些指标,您可以清晰地判断哪些核心正在承受高负载,以及是用户进程、系统进程还是 I/O 等待导致的问题。
核心工具二:htop — 更友好的交互式监控
虽然 top 很强大,但它的界面相对朴素。对于习惯图形化界面的用户,htop 提供了更为友好的交互式界面和彩色显示,让监控体验大大提升。它不仅能显示每个核心的占用率,还能以更直观的方式展示进程信息。
安装 htop:
htop 通常不是 Linux 系统的默认安装项,您需要手动安装它。在 FinalShell 终端中,根据您的 Linux 发行版执行相应的命令:
- Debian/Ubuntu 系统:
sudo apt update sudo apt install htop -y - CentOS/RHEL 系统:
sudo yum install epel-release -y sudo yum install htop -y
操作步骤:
- 安装完成后,在 FinalShell 终端中输入
htop命令并回车:htop htop启动后,您会看到一个彩色的、交互式的界面。在界面的左上方,通常会以条形图的形式显示每个 CPU 核心的当前占用率。htop默认就会显示每个核心的占用率,无需额外操作。您还可以使用F2(Setup)键进入设置,调整显示项和颜色方案,使其更符合您的习惯。
htop 的优势:
- 直观的条形图:每个 CPU 核心的占用率以彩色条形图显示,一目了然。
- 交互性强:可以使用鼠标或键盘箭头上下滚动,
F3搜索进程,F6排序,F9杀死进程等。 - 详细的进程信息:比
top更容易查看每个进程的 CPU、内存占用、用户等信息。
htop 的出现,大大提升了在命令行环境下进行系统监控的舒适度,让您在 FinalShell 中也能享受到接近图形化界面的体验。
核心工具三:mpstat — 专注 CPU 统计的利器
mpstat 是 sysstat 工具包中的一员,专门用于报告处理器(CPU)活动。它能够提供比 top 或 htop 更纯粹、更细致的 CPU 统计数据,尤其适合进行周期性或批处理的 CPU 性能数据收集。
安装 sysstat:
mpstat 属于 sysstat 包,需要先安装:
- Debian/Ubuntu 系统:
sudo apt update sudo apt install sysstat -y - CentOS/RHEL 系统:
sudo yum install sysstat -y
操作步骤:
- 安装完成后,在 FinalShell 终端中执行
mpstat命令。要查看所有 CPU 核心的实时占用率,并每秒刷新一次,可以这样使用:mpstat -P ALL 1-P ALL: 表示显示所有 CPU 核心(包括总计)。如果您想看特定核心,比如第一个核心,可以使用-P 0。1: 表示每隔 1 秒刷新一次数据。您可以将其替换为其他数字来改变刷新间隔。
- 要查看指定次数的统计信息,例如每隔 2 秒刷新 5 次:
mpstat -P ALL 2 5
输出解读:
mpstat 的输出会为每个 CPU 核心(包括 all,代表所有核心的平均值)显示一行统计数据,其中包括:
CPU: CPU 编号,all表示所有核心的平均值。%usr: 用户空间占用 CPU 百分比。%nice: 优先级改变的用户进程占用 CPU 百分比。%sys: 系统空间占用 CPU 百分比。%iowait: 等待 I/O 操作完成的 CPU 百分比。%irq: 处理硬件中断的 CPU 百分比。%soft: 处理软件中断的 CPU 百分比。%steal: 虚拟化环境中被偷走的 CPU 百分比。%guest: 运行虚拟 CPU 的时间百分比(作为客户机)。%gnice: 运行具有 nice 优先级的 guest CPU 的时间百分比。%idle: CPU 空闲百分比。
mpstat 的输出简洁明了,没有 top/htop 那样的进程列表,非常适合专注于 CPU 性能数据的分析。
核心工具四:sar — 历史数据与趋势分析
sar (System Activity Reporter) 也是 sysstat 工具包的一部分,它不仅能显示实时的系统活动信息,更重要的是能够收集、报告和保存历史系统活动信息。这意味着您可以查看过去某个时间段的 CPU 使用情况,进行趋势分析和问题回溯。
安装 sysstat: (同 mpstat,如果已安装则跳过)
- Debian/Ubuntu 系统:
sudo apt update sudo apt install sysstat -y - CentOS/RHEL 系统:
sudo yum install sysstat -y
操作步骤:
-
实时监控所有 CPU 核心: 与
mpstat类似,sar也可以用于实时监控。sar -u ALL 1 5-u: 表示报告 CPU 使用率。ALL: 表示所有 CPU 核心(包括总计)。1: 每隔 1 秒报告一次。5: 共报告 5 次。 输出与mpstat类似,但通常包含时间戳。
-
查看历史数据:
sar最强大的功能在于查看历史数据。sysstat包安装后通常会配置定时任务来收集数据。这些数据默认存储在/var/log/sa/目录下,文件命名格式如saDD(DD 为日期)。 例如,要查看昨天(假设今天是 7 月 6 日,您想看 7 月 5 日的)的 CPU 使用情况:sar -u -f /var/log/sa/sa05或者查看某个时间段的数据:
sar -u -s 09:00:00 -e 10:00:00 -f /var/log/sa/sa06这会显示今天上午 9 点到 10 点的 CPU 使用报告。

sar 的优势:
- 历史数据回溯:这是
top、htop和mpstat所不具备的,对于分析偶发性问题或长期趋势非常重要。 - 多维度报告:
sar不仅仅能报告 CPU,还能报告内存、I/O、网络等各种系统活动数据,通过不同的参数组合实现。
通过 FinalShell 强大的文件管理功能,您也可以方便地浏览 /var/log/sa/ 目录下的历史数据文件,甚至通过 FinalShell SFTP 拖拽上传 功能将这些文件下载到本地进行更深入的分析。
在 FinalShell 中高效利用这些工具
FinalShell 不仅仅是一个 SSH 客户端,它还提供了许多功能,可以帮助您更高效地使用这些 Linux 监控工具:
- 多标签页终端:您可以在 FinalShell 中打开多个终端标签页,同时运行
top、htop、mpstat等命令,方便对比不同工具的输出。 - 滚动回溯与搜索:当
top或htop的输出屏幕刷新过快时,您可以方便地滚动回溯查看历史信息。FinalShell 的终端通常也支持文本搜索,帮助您快速找到关键数据。 - 快捷命令:FinalShell 允许您保存常用的命令为快捷命令,下次使用时只需点击即可执行,省去了重复输入的麻烦。例如,您可以将
htop或mpstat -P ALL 1保存为快捷命令。 - 会话管理:您可以保存多个服务器连接配置,包括 SSH 密钥对登录。如果在使用过程中遇到连接超时问题,可以参考 FinalShell 连接超时问题解决 进行排查。
常见问题
Q1: 为什么 top 或 htop 看不到每核占用率?
A1: 对于 top 命令,您需要在启动后按下数字键 1 才能切换到每核显示模式。对于 htop,它通常默认就会显示每个核心的占用率条形图。如果看不到,可能是 htop 的配置问题,您可以尝试按下 F2 进入 Setup,然后调整 Meters 部分,确保 CPU meter 是 All CPUs 类型或已添加多个 CPU meters。
Q2: 某些工具(如 htop, mpstat, sar)提示命令不存在怎么办?
A2: 这通常意味着这些工具没有在您的 Linux 服务器上安装。它们并非所有 Linux 发行版的默认组件。您需要根据您的发行版(例如 Debian/Ubuntu 使用 apt,CentOS/RHEL 使用 yum)进行安装。本文在介绍每个工具时都提供了安装命令,请参考执行。
Q3: CPU 占用率高,但具体进程看不出来是哪个怎么办?
A3: 当您通过 top 或 htop 发现某个或所有核心的 CPU 占用率很高时,可以结合 top/htop 下方的进程列表进行排查。在 top 或 htop 中,进程列表通常按 CPU 占用率降序排列(如果没有,可以在 top 中按 P 键,在 htop 中按 F6 选 CPU% 排序)。最上面的进程就是当前消耗 CPU 资源最多的进程。如果需要更详细的进程信息,可以结合 ps aux --sort=-%cpu | head -n 10 命令来查看前10个CPU占用最高的进程。
Q4: FinalShell 连接服务器时遇到超时或卡顿怎么办?
A4: FinalShell 连接服务器时如果遇到超时或卡顿,可能的原因有很多,例如网络问题、SSH 服务配置问题、服务器负载过高、防火墙限制等。这可能会影响您实时监控的体验。您可以参考我们专门的文章 FinalShell 连接超时问题解决,其中详细列举了常见的排查步骤和解决方案。确保网络连接稳定是顺畅使用 FinalShell 进行监控的前提。
总结
通过 FinalShell 强大的 SSH 终端功能,结合 top、htop、mpstat 和 sar 等 Linux 命令行工具,我们能够实现对多核 CPU 每一核心的详细、实时乃至历史数据监控。无论是快速诊断性能瓶颈,还是进行深入的性能分析和趋势预测,这些工具都能提供宝贵的数据支持。掌握这些技能,将使您在 Linux 运维工作中更加游刃有余,确保您的服务器始终运行在最佳状态。FinalShell 作为您的得力助手,让这些复杂的监控任务变得触手可及。
延伸阅读
若需进一步查阅,可先看本站以下教程: