在 Linux 服务器运维中,实时、精确地了解 CPU 性能是确保系统稳定和高效运行的关键。尤其是对于拥有多个物理核或逻辑核的现代服务器,仅仅查看“总 CPU 占用率”往往不足以诊断性能瓶颈。例如,一个核心可能被某个进程耗尽,而其他核心却空闲,这种情况下,总占用率可能不高,但应用响应依然缓慢。

作为一款广受好评的 SSH 客户端和服务器管理工具,FinalShell 不仅提供了强大的终端会话管理功能,还集成了便捷的 SFTP 文件传输和图形化监控界面。本文将深入探讨如何借助 FinalShell 强大的终端功能,结合 Linux 系统自带的命令行工具,实现对多核 CPU 每一核心详细占用率的实时监控与分析。通过本文的学习,您将能够更精准地定位服务器性能问题,优化资源配置。

为什么我们需要精确到核的 CPU 监控?

现代服务器通常配备多核 CPU,通过并行处理来提升性能。但在实际运行中,并非所有核心都能被平均利用。以下是精确到核的 CPU 监控至关重要的几个原因:

FinalShell 作为您的得力助手,其简洁高效的终端界面让执行这些复杂的监控命令变得轻而易举。如果您还没有使用 FinalShell,建议访问 FinalShell 官方下载渠道 获取最新版本,并按照 FinalShell Windows 安装与配置 的指引进行安装。

FinalShell 内置监控概览:快速诊断

FinalShell 客户端本身提供了一个直观的图形化监控面板,通常位于界面的右侧或底部。这个面板能够实时显示 CPU、内存、网络 I/O 等总体的资源使用情况。对于快速判断服务器负载状况,它非常方便。

然而,FinalShell 内置的图形化监控通常显示的是总体的 CPU 占用率,或者是一个所有核心的平均值。它无法像我们所期望的那样,精确地显示每一个独立 CPU 核心的详细使用率。当我们需要深入分析某个核心的负载情况,或判断是否存在单核瓶颈时,我们就需要借助强大的 Linux 命令行工具了。

接下来,我们将介绍几种在 FinalShell 终端中常用的 Linux 命令,它们能帮助我们实现精确到核的 CPU 监控。

核心工具一:使用 top 命令实时查看多核 CPU 详情

top 是 Linux 系统中最常用也最强大的性能监控工具之一,它能够实时显示系统中运行的进程,以及系统的整体资源使用情况。通过一个小技巧,我们就能让 top 命令显示每个 CPU 核心的详细占用率。

操作步骤:

  1. 在 FinalShell 中连接到您的 Linux 服务器。如果您是首次连接,可以参考 FinalShell 首次连接服务器 的教程。
  2. 在终端中输入 top 命令并回车。
    top
    
  3. top 界面显示后,您会看到一个类似于任务管理器的界面。默认情况下,它可能只显示一行 CPU 统计信息。
  4. 按下键盘上的数字键 1。 神奇的事情发生了!top 命令会立即展开 CPU 信息区域,显示每一个逻辑 CPU 核心的详细占用率。每个核心都会有一行独立的 %Cpu(s):Cpu 开头的统计信息。

Linux top command output in FinalShell

输出解读:

top 命令显示每个核心的统计信息中,您会看到以下关键指标:

通过观察每个核心的这些指标,您可以清晰地判断哪些核心正在承受高负载,以及是用户进程、系统进程还是 I/O 等待导致的问题。

核心工具二:htop — 更友好的交互式监控

虽然 top 很强大,但它的界面相对朴素。对于习惯图形化界面的用户,htop 提供了更为友好的交互式界面和彩色显示,让监控体验大大提升。它不仅能显示每个核心的占用率,还能以更直观的方式展示进程信息。

安装 htop

htop 通常不是 Linux 系统的默认安装项,您需要手动安装它。在 FinalShell 终端中,根据您的 Linux 发行版执行相应的命令:

操作步骤:

  1. 安装完成后,在 FinalShell 终端中输入 htop 命令并回车:
    htop
    
  2. htop 启动后,您会看到一个彩色的、交互式的界面。在界面的左上方,通常会以条形图的形式显示每个 CPU 核心的当前占用率。
  3. htop 默认就会显示每个核心的占用率,无需额外操作。您还可以使用 F2(Setup)键进入设置,调整显示项和颜色方案,使其更符合您的习惯。

htop 的优势:

htop 的出现,大大提升了在命令行环境下进行系统监控的舒适度,让您在 FinalShell 中也能享受到接近图形化界面的体验。

核心工具三:mpstat — 专注 CPU 统计的利器

mpstatsysstat 工具包中的一员,专门用于报告处理器(CPU)活动。它能够提供比 tophtop 更纯粹、更细致的 CPU 统计数据,尤其适合进行周期性或批处理的 CPU 性能数据收集。

安装 sysstat

mpstat 属于 sysstat 包,需要先安装:

操作步骤:

  1. 安装完成后,在 FinalShell 终端中执行 mpstat 命令。要查看所有 CPU 核心的实时占用率,并每秒刷新一次,可以这样使用:
    mpstat -P ALL 1
    
    • -P ALL: 表示显示所有 CPU 核心(包括总计)。如果您想看特定核心,比如第一个核心,可以使用 -P 0
    • 1: 表示每隔 1 秒刷新一次数据。您可以将其替换为其他数字来改变刷新间隔。
  2. 要查看指定次数的统计信息,例如每隔 2 秒刷新 5 次:
    mpstat -P ALL 2 5
    

输出解读:

mpstat 的输出会为每个 CPU 核心(包括 all,代表所有核心的平均值)显示一行统计数据,其中包括:

mpstat 的输出简洁明了,没有 top/htop 那样的进程列表,非常适合专注于 CPU 性能数据的分析。

核心工具四:sar — 历史数据与趋势分析

sar (System Activity Reporter) 也是 sysstat 工具包的一部分,它不仅能显示实时的系统活动信息,更重要的是能够收集、报告和保存历史系统活动信息。这意味着您可以查看过去某个时间段的 CPU 使用情况,进行趋势分析和问题回溯。

安装 sysstat (同 mpstat,如果已安装则跳过)

操作步骤:

  1. 实时监控所有 CPU 核心:mpstat 类似,sar 也可以用于实时监控。

    sar -u ALL 1 5
    
    • -u: 表示报告 CPU 使用率。
    • ALL: 表示所有 CPU 核心(包括总计)。
    • 1: 每隔 1 秒报告一次。
    • 5: 共报告 5 次。 输出与 mpstat 类似,但通常包含时间戳。
  2. 查看历史数据: 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 使用报告。

Server racks with active monitoring displays

sar 的优势:

通过 FinalShell 强大的文件管理功能,您也可以方便地浏览 /var/log/sa/ 目录下的历史数据文件,甚至通过 FinalShell SFTP 拖拽上传 功能将这些文件下载到本地进行更深入的分析。

在 FinalShell 中高效利用这些工具

FinalShell 不仅仅是一个 SSH 客户端,它还提供了许多功能,可以帮助您更高效地使用这些 Linux 监控工具:

常见问题

Q1: 为什么 tophtop 看不到每核占用率?

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: 当您通过 tophtop 发现某个或所有核心的 CPU 占用率很高时,可以结合 top/htop 下方的进程列表进行排查。在 tophtop 中,进程列表通常按 CPU 占用率降序排列(如果没有,可以在 top 中按 P 键,在 htop 中按 F6CPU% 排序)。最上面的进程就是当前消耗 CPU 资源最多的进程。如果需要更详细的进程信息,可以结合 ps aux --sort=-%cpu | head -n 10 命令来查看前10个CPU占用最高的进程。

Q4: FinalShell 连接服务器时遇到超时或卡顿怎么办?

A4: FinalShell 连接服务器时如果遇到超时或卡顿,可能的原因有很多,例如网络问题、SSH 服务配置问题、服务器负载过高、防火墙限制等。这可能会影响您实时监控的体验。您可以参考我们专门的文章 FinalShell 连接超时问题解决,其中详细列举了常见的排查步骤和解决方案。确保网络连接稳定是顺畅使用 FinalShell 进行监控的前提。

总结

通过 FinalShell 强大的 SSH 终端功能,结合 tophtopmpstatsar 等 Linux 命令行工具,我们能够实现对多核 CPU 每一核心的详细、实时乃至历史数据监控。无论是快速诊断性能瓶颈,还是进行深入的性能分析和趋势预测,这些工具都能提供宝贵的数据支持。掌握这些技能,将使您在 Linux 运维工作中更加游刃有余,确保您的服务器始终运行在最佳状态。FinalShell 作为您的得力助手,让这些复杂的监控任务变得触手可及。

延伸阅读

若需进一步查阅,可先看本站以下教程: