发布时间:2026/7/6 12:00:59
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种权限对比)
2026/7/6 12:00:59

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

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

阅读更多
3步掌握N_m3u8DL-CLI-SimpleG:告别命令行恐惧的M3U8下载神器
2026/7/6 11:00:59

3步掌握N_m3u8DL-CLI-SimpleG:告别命令行恐惧的M3U8下载神器

3步掌握N_m3u8DL-CLI-SimpleG:告别命令行恐惧的M3U8下载神器 【免费下载链接】N_m3u8DL-CLI-SimpleG N_m3u8DL-CLIs simple GUI 项目地址: https://gitcode.com/gh_mirrors/nm3/N_m3u8DL-CLI-SimpleG 还在为复杂的命令行操作而头疼吗?N_m3u8DL-CL…

阅读更多
基于SpringBoot的国密群签名区块链教学模拟系统(含源码、文档与可运行工程)
2026/7/6 11:00:59

基于SpringBoot的国密群签名区块链教学模拟系统(含源码、文档与可运行工程)

本文还有配套的精品资源,点击获取 简介:面向高校毕业设计和密码学课程实践的轻量级区块链模拟系统,用SpringBoot实现,内置SM2公钥加密、SM3哈希、SM4对称加解密及群签名机制,支持交易提交、区块打包、多节点模拟、签…

阅读更多
从手动到自动:B站抽奖助手的智能革命与技术深度解析
2026/7/6 13:00:59

从手动到自动:B站抽奖助手的智能革命与技术深度解析

从手动到自动:B站抽奖助手的智能革命与技术深度解析 【免费下载链接】LotteryAutoScript Bili动态抽奖助手 项目地址: https://gitcode.com/gh_mirrors/lo/LotteryAutoScript 在B站这个充满创意与活力的社区中,抽奖活动已成为UP主与粉丝互动的重要…

阅读更多
3步部署+5大智能模块:League Akari重塑英雄联盟游戏体验
2026/7/6 13:00:59

3步部署+5大智能模块:League Akari重塑英雄联盟游戏体验

3步部署5大智能模块:League Akari重塑英雄联盟游戏体验 【免费下载链接】League-Toolkit An all-in-one toolkit for LeagueClient. Gathering power 🚀. 项目地址: https://gitcode.com/gh_mirrors/le/League-Toolkit League Akari是一款基于英雄…

阅读更多
计算机专业就业:换个角度从问题拆解到交付验证,从方案设计到上线检查
2026/7/6 13:00:59

计算机专业就业:换个角度从问题拆解到交付验证,从方案设计到上线检查

聊《计算机专业就业:换个角度,从问题拆解到交付验证》之前,先说一句实在的:别急着背概念,先看它在真实项目里到底解决什么问题。摘要这篇面向计算机专业学生、应届生和转专业学习者,但不会把“计算机专业就…

阅读更多
PowerToys Text Extractor:解锁屏幕文字的智能钥匙,让每一段文字都触手可及
2026/7/6 13:00:59

PowerToys Text Extractor:解锁屏幕文字的智能钥匙,让每一段文字都触手可及

PowerToys Text Extractor:解锁屏幕文字的智能钥匙,让每一段文字都触手可及 【免费下载链接】PowerToys Microsoft PowerToys is a collection of utilities that supercharge productivity and customization on Windows 项目地址: https://gitcode.c…

阅读更多
解锁B站缓存视频:m4s-converter让你的珍贵收藏重获新生
2026/7/6 13:00:59

解锁B站缓存视频:m4s-converter让你的珍贵收藏重获新生

解锁B站缓存视频:m4s-converter让你的珍贵收藏重获新生 【免费下载链接】m4s-converter 一个跨平台小工具,将bilibili缓存的m4s格式音视频文件合并成mp4 项目地址: https://gitcode.com/gh_mirrors/m4/m4s-converter 你是否曾经遇到过这样的困境&…

阅读更多
从零到一:用免费开源工具KLayout开启你的芯片设计之旅
2026/7/6 12:00:59

从零到一:用免费开源工具KLayout开启你的芯片设计之旅

从零到一:用免费开源工具KLayout开启你的芯片设计之旅 【免费下载链接】klayout KLayout Main Sources 项目地址: https://gitcode.com/gh_mirrors/kl/klayout 在集成电路设计的浩瀚宇宙中,你是否曾因高昂的商业软件费用而望而却步?是…

阅读更多
通达OA SQL注入漏洞深度剖析:从手工注入到自动化利用与防御
2026/7/5 0:00:50

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

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

阅读更多
3步彻底解决Windows右键菜单混乱问题:ContextMenuManager使用全攻略
2026/7/6 12:19:58

3步彻底解决Windows右键菜单混乱问题:ContextMenuManager使用全攻略

3步彻底解决Windows右键菜单混乱问题:ContextMenuManager使用全攻略 【免费下载链接】ContextMenuManager 🖱️ 纯粹的Windows右键菜单管理程序 项目地址: https://gitcode.com/gh_mirrors/co/ContextMenuManager 你是否曾为Windows右键菜单中那些…

阅读更多
GXDE OS下Wayland兼容性实战:从deepin-mutter原理到VMware Tools修复
2026/7/5 0:00:50

GXDE OS下Wayland兼容性实战:从deepin-mutter原理到VMware Tools修复

如果你正在用 GXDE OS 或者任何基于 Deepin 的发行版,并且遇到了“检测到窗口系统采用 Wayland 协议,程序即将退出”这类弹窗,或者发现 VMware Tools 在 Ubuntu 24.04 这类默认 Wayland 的系统上启动失败,那这篇文章就是为你准备的…

阅读更多
星露谷物语终极MOD指南:5个步骤打造智能自动化农场
2026/7/6 0:00:56

星露谷物语终极MOD指南:5个步骤打造智能自动化农场

星露谷物语终极MOD指南:5个步骤打造智能自动化农场 【免费下载链接】StardewMods Mods for Stardew Valley using SMAPI. 项目地址: https://gitcode.com/gh_mirrors/st/StardewMods 你是否厌倦了在星露谷物语中重复收割、加工、存储的繁琐操作?梦…

阅读更多
免费二维码修复工具终极指南:三步拯救损坏二维码
2026/7/6 0:00:56

免费二维码修复工具终极指南:三步拯救损坏二维码

免费二维码修复工具终极指南:三步拯救损坏二维码 【免费下载链接】qrazybox QR Code Analysis and Recovery Toolkit 项目地址: https://gitcode.com/gh_mirrors/qr/qrazybox 你是否曾经面对一个损坏的二维码束手无策?模糊、破损、打印质量差的二…

阅读更多
acme.sh私钥加密存储:基于OpenSSL的自动化证书安全管理方案
2026/7/6 0:00:56

acme.sh私钥加密存储:基于OpenSSL的自动化证书安全管理方案

1. 项目概述:为什么我们需要加密存储私钥?在运维和开发领域,使用 Let‘s Encrypt 等免费 CA 通过 ACME 协议自动化签发和管理 SSL/TLS 证书,已经成为标准实践。acme.sh作为这个领域的佼佼者,以其轻量、强大和脚本化的特…

阅读更多
基于Dify与DeepSeek构建私有知识库问答系统实战指南
2026/7/4 11:17:16

基于Dify与DeepSeek构建私有知识库问答系统实战指南

在业务中快速构建一个能理解私有文档、准确回答专业问题的智能助手,是很多开发团队面临的共同挑战。传统方案往往需要从零开始搭建复杂的 RAG(检索增强生成)系统,涉及文档解析、向量化、检索、大模型调用等多个环节,整…

阅读更多
FAE放射组学分析工具:医学影像特征探索的完整解决方案
2026/7/6 7:18:59

FAE放射组学分析工具:医学影像特征探索的完整解决方案

FAE放射组学分析工具:医学影像特征探索的完整解决方案 【免费下载链接】FAE FeAture Explorer 项目地址: https://gitcode.com/gh_mirrors/fae/FAE 你是否曾经面对海量医学影像数据感到无从下手?想要从CT、MRI等影像中提取有价值的定量特征&#…

阅读更多
DesktopNaotu:你的终极离线思维导图解决方案,告别网络依赖!
2026/7/5 15:33:35

DesktopNaotu:你的终极离线思维导图解决方案,告别网络依赖!

DesktopNaotu:你的终极离线思维导图解决方案,告别网络依赖! 【免费下载链接】DesktopNaotu 桌面版脑图 (百度脑图离线版,思维导图) 跨平台支持 Windows/Linux/Mac OS. (A cross-platform multilingual Mind Map Tool) 项目地址:…

阅读更多