Linux如何查看指定时段CPU负载?

使用tophtop实时监控,或通过sar -u查看历史数据(需安装sysstat),执行sar -u 5 3可每5秒采样一次、共3次显示CPU使用率,包含用户态、内核态及空闲百分比。

在Linux系统中,查看一段时间内的CPU负荷是性能监控和故障排查的关键操作,以下是几种专业、可靠的方法,结合系统工具和日志分析,确保数据的准确性和实用性:

Linux如何查看指定时段CPU负载?


使用 sar 命令(推荐)

sar(System Activity Reporter)是 sysstat 工具包的核心组件,专门用于收集和报告历史系统负载数据,适合分析时间范围内的CPU使用率。

步骤:

  1. 安装 sysstat(若未安装):

    sudo apt install sysstat         # Debian/Ubuntu
    sudo yum install sysstat         # CentOS/RHEL

    安装后,系统会自动每10分钟收集一次数据(通过 /etc/cron.d/sysstat)。

  2. 查看特定时间段的CPU负荷

    sar -u -s 10:00:00 -e 12:00:00  # 查看10:00到12:00的整体CPU使用率

    输出示例

    11:00:01 AM  CPU   %user   %nice  %system  %iowait  %idle
    11:10:01 AM  all   25.32    0.01     5.12      1.23   68.32
    11:20:01 AM  all   30.45    0.02     6.01      0.98   62.54
    • 关键指标
      • %user:用户进程占用CPU百分比。
      • %system:内核进程占用百分比。
      • %idle:CPU空闲百分比。
      • %iowait:等待I/O操作的百分比(值过高可能表示磁盘瓶颈)。
  3. 查看某一天的日志

    Linux如何查看指定时段CPU负载?

    sar -u -f /var/log/sysstat/sa25  # 分析25号的数据(日志路径因系统而异)

使用 mpstat 命令

mpstat(同属 sysstat 工具包)提供多核CPU的详细统计,支持按时间间隔采样。

示例:

mpstat -P ALL 5 60                # 每5秒采样一次,共60次(5分钟),并显示所有CPU核心

输出关键项

  • %usr:用户空间占用。
  • %sys:内核空间占用。
  • %iowait:I/O等待。
  • %idle:空闲率。

使用 vmstat 命令

vmstat 提供简化的系统资源概览,适合快速检查。

示例:

vmstat 10 30                      # 每10秒采样一次,共30次(5分钟)

输出解析

  • r:运行队列长度(若持续>CPU核心数,表示CPU饱和)。
  • us/sy/id:分别对应用户态、内核态、空闲CPU百分比。

结合 tophtop 实时监控

虽然 top 是实时工具,但可通过日志重定向记录一段时间的数据:

top -b -d 10 -n 60 > cpu_log.txt  # 每10秒采样,共60次(10分钟),结果保存到文件

grep 分析日志:

Linux如何查看指定时段CPU负载?

grep "Cpu(s)" cpu_log.txt          # 提取所有CPU摘要行

自定义脚本监控

通过Shell脚本定期记录数据(无需 sysstat):

#!/bin/bash
end=$((SECONDS+300))  # 监控5分钟
while [ $SECONDS -lt $end ]; do
    echo "$(date '+%H:%M:%S') $(top -bn1 | grep "Cpu(s)")" >> cpu_usage.log
    sleep 10
done

运行后,cpu_usage.log 将包含时间戳和CPU负载快照。


如何选择最佳方法?

场景 推荐工具 优势
分析历史数据(如昨日) sar 自动归档,支持灵活时间范围查询
实时多核监控 mpstat 按核心详细统计
快速资源概览 vmstat 轻量级,同时显示内存/进程状态
临时诊断 top + 日志 无需安装额外工具

注意事项

  1. sysstat 数据存储
    • 日志路径:/var/log/sysstat/saXX(XX为日期)。
    • 数据保留时长由 /etc/sysstat/sysstat 中的 HISTORY 参数控制(默认28天)。
  2. 高负载诊断
    • %idle 持续低于 10%,表示CPU资源紧张。
    • %iowait 高于 15% 可能暗示磁盘I/O瓶颈。
  3. 权限要求:访问历史日志需 rootsudo 权限。

引用说明

  • sarmpstat 文档:参考 man sarsysstat官方文档
  • Linux性能监控标准:基于《Systems Performance: Enterprise and the Cloud》方法论(Brendan Gregg著)。
  • 数据安全建议:操作符合Linux审计规范,不影响系统稳定性。

通过上述方法,可精准定位CPU瓶颈,优化系统性能,建议优先部署 sysstat 并定期检查日志,以建立长期性能基线。

原创文章,发布者:酷盾叔,转转请注明出处:https://www.kd.cn/ask/28895.html

(0)
酷盾叔的头像酷盾叔
上一篇 2025年6月18日 01:18
下一篇 2025年6月18日 01:24

相关推荐

  • 如何快速查看Linux版本命令

    查看Linux系统版本常用命令: ,1. 执行 lsb_release -a 获取发行版信息; ,2. 查看 /etc/os-release 文件内容; ,3. 使用 hostnamectl 或 uname -r 查看内核版本。 ,不同发行版可能需结合特定文件(如CentOS的/etc/redhat-release)。

    2025年6月11日
    100
  • Linux卸载根目录会怎样?

    Linux中无法直接卸载(umount)根目录(/)文件系统,因为所有关键系统进程都依赖其运行,卸载操作会被系统阻止(显示”device is busy”),强行尝试会导致系统崩溃。

    2025年6月6日
    200
  • Linux如何运行exe文件

    Linux无法直接运行exe文件,主要方法有:,1. 使用Wine(兼容层)模拟Windows环境运行。,2. 在虚拟机(如VirtualBox)里安装完整Windows系统运行。,3. 双系统启动进入Windows运行。,根据需求选择合适方式。

    2025年6月17日
    100
  • Linux怎样快速创建WiFi热点?

    在Linux中设置WiFi热点:确保无线网卡支持AP模式,使用nmcli命令:nmcli dev wifi hotspot ifname ssid password 创建热点连接,然后启用该连接即可。

    2025年6月15日
    000
  • Linux如何登录MySQL?

    在Linux终端中,输入命令“mysql -u 用户名 -p”登录MySQL,系统会提示输入密码,确保MySQL服务已启动。

    2025年6月17日
    100

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN