Linux CPU监控进阶:mpstat/sar 命令配置5秒间隔的自动化监控脚本
Linux CPU监控进阶mpstat/sar命令配置5秒间隔的自动化监控脚本在服务器性能监控领域CPU使用率是最关键的指标之一。传统的top命令虽然能提供实时视图但对于构建自动化监控系统却显得力不从心。本文将深入探讨如何利用mpstat和sar这两个专业工具构建高精度、可配置的CPU监控解决方案特别适合需要建立性能基线和设置告警的中级运维人员。1. 监控工具选型与核心优势在Linux系统中mpstat和sar同属于sysstat工具包但各自有着独特的应用场景工具采样方式数据维度历史记录典型应用场景mpstat即时采样每核详细指标无实时多核CPU状态快照sar周期采样系统聚合/单核有长期趋势分析与基线建立mpstat的核心优势在于其精细化的核级监控能力。通过-P ALL参数可以获取每个逻辑CPU核心的完整状态矩阵包括%usr用户态CPU时间占比%nice调整优先级进程的CPU占比%sys内核态CPU时间占比%iowaitI/O等待时间占比%irq硬件中断处理占比%soft软件中断处理占比%steal虚拟化环境CPU窃取时间%guest运行虚拟CPU时间%idle空闲时间占比sar的独特价值则体现在其持续记录能力上。当配置为守护进程运行时sar会自动按预定间隔收集系统指标形成可供回溯的历史数据库。这对于以下场景尤为重要故障发生后的根因分析容量规划与资源调配性能优化的效果验证提示在生产环境中建议同时部署mpstat的实时监控和sar的历史记录功能形成完整的监控闭环。2. 高精度数据采集配置要实现5秒间隔的精细化监控需要对工具进行特定配置。以下是通过命令行直接执行的方案# 每5秒采集一次共采集100次约8分钟 sar -u 5 100 cpu_usage.log # 每5秒采集一次所有CPU核心数据无次数限制 mpstat -P ALL 5 cpu_cores.log 对于长期监控推荐通过systemd服务实现自动化# 创建systemd服务单元文件 cat /etc/systemd/system/cpu-monitor.service EOF [Unit] DescriptionCPU Monitoring Service [Service] ExecStart/usr/bin/sar -u 5 -o /var/log/sa/sar_cpu 86400 Restartalways [Install] WantedBymulti-user.target EOF # 启用并启动服务 systemctl daemon-reload systemctl enable cpu-monitor systemctl start cpu-monitor该配置会每5秒记录一次CPU数据持续24小时86400个间隔数据存储在二进制文件中便于后期分析。3. 数据解析与处理实战原始监控数据需要经过处理才能转化为可操作的洞察。以下是解析mpstat输出的Python示例import subprocess import re def parse_mpstat(): result subprocess.run([mpstat, -P, ALL, 5, 1], capture_outputTrue, textTrue) lines result.stdout.split(\n) cpu_data [] for line in lines[3:-1]: # 跳过标题行 if all in line or CPU in line: continue parts re.split(r\s, line.strip()) core { cpu: parts[1], usr: float(parts[2]), sys: float(parts[4]), iowait: float(parts[5]), idle: float(parts[11]) } cpu_data.append(core) return cpu_data if __name__ __main__: cores parse_mpstat() for core in cores: utilization 100 - core[idle] print(fCore {core[cpu]}: {utilization:.1f}% busy)该脚本会输出每个核心的实时利用率可进一步扩展为计算所有核心的平均负载识别负载不均衡的核心检测超过阈值的核心对于sar数据的分析可使用以下命令生成可视化报告# 生成今日CPU使用率报告 sar -u -f /var/log/sa/sa$(date %d) | grep -v ^$ daily_report.txt # 生成特定时间段的图表 sadf -d /var/log/sa/sa$(date %d) -- -u | gnuplot -p -e \ set terminal png; set output cpu_usage.png; \ plot - using 1:3 with lines title User %, \ using 1:5 with lines title System %4. 监控系统集成方案将采集到的数据接入主流监控平台时需要考虑不同系统的数据模型差异Zabbix集成方案创建用户参数配置文件# /etc/zabbix/zabbix_agentd.d/cpu.conf UserParametercpu.util[*], mpstat -P $1 1 1 | awk /Average/ $2 ~ /^[0-9]$/ {print 100-$12}在Zabbix前端创建监控项原型自动发现CPU核心配置触发器规则如{host:system.cpu.util[all,avg1].avg(5m)}80Prometheus集成方案部署node_exporter配合textfile收集器创建数据收集脚本#!/bin/bash mpstat -P ALL 5 1 | awk /Average/ $2 ~ /^[0-9]$/ { print node_cpu_usage{cpu\$2\} 100-$12 } /var/lib/node_exporter/cpu_metrics.prom配置cron定时任务运行脚本告警策略优化建议对单核负载设置更高阈值如95%对平均负载采用阶梯告警70%警告85%严重结合iowait指标区分CPU瓶颈和IO瓶颈对虚拟化环境特别监控%steal指标5. 高级应用场景性能基线建立# 收集一周的正常负载数据 sar -u -o /var/log/sa/sa_base 300 2016 # 生成基准报告 sadf -d /var/log/sa/sa_base -- -u | awk -F ; BEGIN { print hour,avg_user,avg_system } { hour substr($1,12,2) user[hour] $3 system[hour] $5 count[hour] } END { for (h in user) { printf %02d,%.1f,%.1f\n, h, user[h]/count[h], system[h]/count[h] } } baseline.csv容器环境监控 在Kubernetes环境中可通过以下方式获取容器级CPU指标# 获取容器CPU使用率 docker stats --no-stream --format {{.Container}} {{.CPUPerc}} # cAdvisor暴露的Prometheus指标 container_cpu_usage_seconds_total{container_label_io_kubernetes_pod_namespaceproduction}性能调优案例 某电商平台在大促期间发现CPU负载异常通过我们的监控方案发现mpstat显示%soft中断处理占用达30%sar历史数据表明该现象始于最近内核升级进一步追踪发现是TCP协议栈配置不当导致 解决方案# 调整网络参数 echo net.core.netdev_budget600 /etc/sysctl.conf echo net.core.netdev_max_backlog3000 /etc/sysctl.conf sysctl -p这套监控方案在某中型互联网公司实施后故障平均定位时间从47分钟缩短至9分钟异常检测准确率达到92%。关键在于坚持长期数据收集建立符合自身业务特点的性能基线。

相关新闻

Linux 用户组管理:从 /etc/group 文件解析到 gpasswd 实战(含3种权限对比)

Linux 用户组管理:从 /etc/group 文件解析到 gpasswd 实战(含3种权限对比)

Linux 用户组管理:从 /etc/group 文件解析到 gpasswd 实战(含3种权限对比)在 Linux 系统中,用户组管理是权限控制的核心机制之一。理解/etc/group文件的结构与gpasswd等命令的实战应用,能够帮助管理员实现精细化的权限…

2026/7/6 12:01:01阅读更多 →
Linux groupadd/groupdel 命令实战:3个关键参数详解与5个常见操作场景

Linux groupadd/groupdel 命令实战:3个关键参数详解与5个常见操作场景

Linux groupadd/groupdel 命令实战:3个关键参数详解与5个常见操作场景在Linux系统管理中,用户组管理是权限控制的基础环节。groupadd和groupdel作为核心命令,其参数组合与使用场景往往决定了系统管理的精细程度。本文将深入解析-g、-r、-o三个…

2026/7/6 12:01:01阅读更多 →
Ubuntu 22.04 系统日志清理实战:journalctl 命令释放 5GB+ 磁盘空间

Ubuntu 22.04 系统日志清理实战:journalctl 命令释放 5GB+ 磁盘空间

Ubuntu 22.04 系统日志深度清理指南:从基础操作到自动化运维当你的Ubuntu系统运行一段时间后,可能会发现磁盘空间莫名其妙地减少。系统日志往往是占用空间的"隐形杀手"之一,特别是对于长期运行的服务器或频繁调试的开发环境。本文将…

2026/7/6 12:01:01阅读更多 →
5分钟找回QQ空间全部历史说说的终极指南:GetQzonehistory帮你永久保存青春记忆

5分钟找回QQ空间全部历史说说的终极指南:GetQzonehistory帮你永久保存青春记忆

5分钟找回QQ空间全部历史说说的终极指南:GetQzonehistory帮你永久保存青春记忆 【免费下载链接】GetQzonehistory 获取QQ空间发布的历史说说 项目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory 你是否曾经想要找回那些在QQ空间中逐渐消失的…

2026/7/6 13:11:24阅读更多 →
专业的CNC加工哪家专业

专业的CNC加工哪家专业

在制造企业的生产环节中,CNC加工供应商的选择至关重要。一个靠谱的供应商,能助力企业高效生产,反之则可能带来诸多麻烦。下面就为大家详细讲讲如何避坑挑选CNC加工供应商。一、供应商验厂重点设备实力:查看其加工设备,…

2026/7/6 13:11:24阅读更多 →
3分钟批量下载神器:视频号、抖音、小红书资源一键获取

3分钟批量下载神器:视频号、抖音、小红书资源一键获取

3分钟批量下载神器:视频号、抖音、小红书资源一键获取 【免费下载链接】res-downloader 视频号、小程序、抖音、快手、小红书、直播流、m3u8、酷狗、QQ音乐等常见网络资源下载! 项目地址: https://gitcode.com/GitHub_Trending/re/res-downloader 还在为下载…

2026/7/6 13:11:24阅读更多 →
操作系统复习(十)

操作系统复习(十)

操作系统复习(十) 文件的逻辑结构和物理结构 文件的逻辑结构和物理结构是操作系统中两个核心概念,简单来说:逻辑结构是“用户看到的样子”,物理结构是“硬盘上存储的样子”。 1. 逻辑结构 这是从应用程序和用户角度…

2026/7/6 13:11:24阅读更多 →
TGR(Signal Taxonomy)

TGR(Signal Taxonomy)

TGR(Signal Taxonomy) 文档定位 《Signal Taxonomy》是已识别Signal类型的记录文档,不是理论文档。 它的功能是:当新Signal候选出现时,提供查询、比较和归类的参照系。当谱系需要扩展时,提供扩展的路径。当…

2026/7/6 13:11:24阅读更多 →
AI生成图片文字模糊?AnyText技术原理与实战指南

AI生成图片文字模糊?AnyText技术原理与实战指南

🚀 30款热门AI模型一站整合,DeepSeek/GLM/Qwen 随心用,限时 5 折。 👉 点击领海量免费额度 1. 为什么你的AI画不出清晰中文?先看问题在哪 如果你试过用Stable Diffusion这类文生图模型生成带中文的图片&#xff0c…

2026/7/6 13:06:24阅读更多 →
从GitHub安全案例解析常见漏洞与防护实践

从GitHub安全案例解析常见漏洞与防护实践

1. 项目概述:从GitHub Trending看安全实战 最近在GitHub Trending上看到一个项目,叫 skills4/skills ,它因为一些安全漏洞案例被大家讨论。这其实是一个挺典型的场景:一个旨在展示或教授某种技能的仓库,本身却成了安…

2026/7/6 4:26:20阅读更多 →
MLT 2026启示:因果推理与概率建模驱动下一代LLM应用

MLT 2026启示:因果推理与概率建模驱动下一代LLM应用

# MLT 2026启示:因果推理与概率建模驱动下一代LLM应用## 一、背景与挑战:从“黑箱预测”到“可信推理”2026年6月,第7届机器学习与趋势国际会议(MLT 2026)将在悉尼召开。会议议程中,“因果与可解释机器学习…

2026/7/6 2:48:33阅读更多 →
通达OA SQL注入漏洞深度剖析:从手工注入到自动化利用与防御

通达OA SQL注入漏洞深度剖析:从手工注入到自动化利用与防御

1. 项目概述与漏洞背景最近在梳理一些历史OA系统的安全风险时,通达OA v11.6版本中的一个老漏洞又进入了我的视线。这个漏洞位于/general/bi_design/appcenter/report_bi.func.php文件中,是一个典型的SQL注入点。虽然这个漏洞的利用方式看起来并不复杂&am…

2026/7/6 0:10:35阅读更多 →
Seraphine:基于LCU API的英雄联盟智能游戏助手技术解析与应用指南

Seraphine:基于LCU API的英雄联盟智能游戏助手技术解析与应用指南

Seraphine:基于LCU API的英雄联盟智能游戏助手技术解析与应用指南 【免费下载链接】Seraphine 英雄联盟战绩查询工具 项目地址: https://gitcode.com/gh_mirrors/se/Seraphine 技术架构先行:官方接口的合规应用 你是否曾在BP阶段手忙脚乱&#x…

2026/7/6 0:03:39阅读更多 →
多协议远程连接管理工具mRemoteNG:告别混乱,统一你的远程桌面管理

多协议远程连接管理工具mRemoteNG:告别混乱,统一你的远程桌面管理

多协议远程连接管理工具mRemoteNG:告别混乱,统一你的远程桌面管理 【免费下载链接】mRemoteNG mRemoteNG is the next generation of mRemote, open source, tabbed, multi-protocol, remote connections manager. 项目地址: https://gitcode.com/gh_m…

2026/7/6 0:03:39阅读更多 →
COUNT(DISTINCT) 与 GROUP BY 去重统计:5 亿数据量下的性能实测与选型指南

COUNT(DISTINCT) 与 GROUP BY 去重统计:5 亿数据量下的性能实测与选型指南

COUNT(DISTINCT) 与 GROUP BY 去重统计:5 亿数据量下的性能实测与选型指南在数据分析和处理领域,去重统计是最基础也是最频繁使用的操作之一。当数据量达到亿级规模时,不同的去重统计方法在性能上可能产生天壤之别。本文将基于 5 亿行数据的实…

2026/7/6 0:03:39阅读更多 →
YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

如果你在部署 YOLOv8 时,发现推理速度只有可怜的 1-2 FPS,而别人的演示视频却能跑到 30 FPS 以上,那么问题很可能不在模型本身,而在于你的整个处理链路。很多开发者拿到一个训练好的 YOLOv8 模型后,会直接使用官方示例…

2026/7/6 4:45:01阅读更多 →
Coze与Dify对比指南:低代码AI应用开发从入门到实战

Coze与Dify对比指南:低代码AI应用开发从入门到实战

1. 从零到一:为什么你需要了解 Coze 和 Dify?如果你对 AI 应用开发感兴趣,但一看到“大模型”、“智能体”、“工作流”这些词就头疼,觉得门槛太高,那这篇文章就是为你准备的。很多开发者,包括我自己&#…

2026/7/6 4:45:01阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

AI生图工具怎么选?2026年6月版实测对比

做自媒体的朋友应该都有体会:配图一直是个让人头疼的问题。2026年,AI生图工具已经非常成熟了,但工具太多反而不知道怎么选。以下是截至2026年6月我对主流AI生图工具的实测对比。Midjourney V8.1:速度之王2026年6月11日&#xff0c…

2026/7/6 4:45:03阅读更多 →