Linux系统负载全方位监控+压力测试实战(运维必备)
Linux系统负载全方位监控压力测试实战运维必备日常运维工作中系统负载、CPU、内存、磁盘IO、网络带宽是排查服务器性能问题的核心指标。很多新手只看懂负载数值却不懂负载原理、不会压测复现、不会故障排查。本文从零讲解Linux系统负载核心原理、监控命令、stress压力测试工具手把手搞定系统监控适合运维入门。一、系统负载核心原理详解Linux系统负载平均值Load Average是评判服务器繁忙程度的核心指标由内核通过活动请求数的指数移动平均值计算得出和普通UNIX系统的负载统计逻辑有明显区别。1.1 核心统计规则活动请求数范围更广不仅包含运行中进程R状态还包含等待IO的进程D状态涵盖磁盘、网络响应等待的任务这是Linux负载的核心特点。指数移动平均值平滑瞬时峰值、谷值数据规避单次波动干扰精准反映一段时间内的系统负载趋势。计算频率与维度内核每5秒统计一次全局CPU活动请求数最终输出1分钟、5分钟、15分钟的负载平均值。区别于其他UNIX系统多数UNIX仅统计CPU使用率、运行队列长度Linux额外纳入IO负载。负载高但CPU空闲时优先排查磁盘、网络IO瓶颈。CPU核心计数规则物理核心、超线程均被视为独立执行单元每个单元拥有独立请求队列负载解读需结合核心数计算。1.2 负载数值解读标准负载数值不能单独看必须结合CPU核心总数判断核心公式单核心负载 总负载值 / CPU核心数。示例4核心CPU负载值为 2.92、4.48、5.20单核心负载分别为0.73、1.12、1.30最佳负载阈值单核心负载75%左右为稳定理想值持续超100%说明CPU过载存在任务排队拥堵。二、基础负载查看命令实操2.1 lscpu 查看CPU硬件信息用于查询服务器CPU核心数、线程数、架构等基础信息是负载解读的前置操作。[fangbingcentos7 ~16:59:38]$ lscpu Architecture: x86_64 CPU op-mode(s):32-bit,64-bit Byte Order: Little Endian CPU(s):2#总CPU核心数是2On-line CPU(s)list:0,1Thread(s)per core:1Core(s)per socket:1座2NUMA 节点1厂商 ID GenuineIntel CPU 系列6型号170型号名称 Intel(R)Core(TM)Ultra5125H 步进4CPU MHz2995.206BogoMIPS5990.412.2 uptime 快速查看系统负载一键查看服务器运行时长、在线用户数、1/5/15分钟负载平均值是运维高频快捷命令。# 初始低负载状态[fangbingcentos7 ~17:15:04]$uptime17:18:59 up19min,1user, load average:0.00,0.01,0.03# 后台md5sum循环计算占用CPU资源快速制造系统负载用于测试监控效果[fangbingcentos7 ~17:18:59]$ md5sum /dev/zero[1]2438[fangbingcentos7 ~17:19:36]$ md5sum /dev/zero[2]2439[fangbingcentos7 ~17:19:38]$uptime17:21:37 up22min,1user, load average:2.04,0.75,0.29负载解读服务器逻辑 CPU 总数2 核uptime 负载load average: 2.04, 0.75, 0.29三个数值1 分钟、5 分钟、15 分钟平均负载计算公式单核心平均负载 负载数值 ÷ 逻辑 CPU 数量1 分钟负载2.04 ÷ 2 1.025 分钟负载0.75 ÷ 2 0.37515 分钟负载0.29 ÷ 2 0.145注意说明短期内单核心负载略微超过 1代表CPU 资源已经打满新任务开始排队等待调度。三、top动态进程监控工具top是Linux核心实时监控工具可动态查看进程状态、任务数量、CPU/内存占用、负载状态是运维排查故障的必备工具。3.1 top常用快捷键运维必记1展开所有CPU核心查看单核心负载状态u过滤用户P按CPU使用率从高到低排序进程M按内存使用率从高到低排序进程k输入PID终止指定异常进程q退出top监控界面shiftw写入保存当前的显示配置以便下次重新启动时再使用h查看top帮助文档四、stress专业压力测试工具stress是Linux专用压力测试工具可精准模拟CPU、内存、磁盘IO、磁盘读写高负载场景用于测试服务器稳定性、性能阈值适配性能调优、硬件验证、故障复现场景。4.1 工具安装与帮助文档# CentOS7安装stress[rootcentos7 ~18:12:09]# yum install -y stress# 查看全部参数说明[rootcentos7 ~18:13:52]# stress --helpstress imposes certain types of compute stress on your system Usage: stress[OPTION[ARG]]... -?,--helpshow thishelpstatement--versionshow version statement -v,--verbosebe verbose -q,--quietbe quiet -n, --dry-run show what would have beendone-t,--timeoutNtimeoutafter N seconds--backoffNwaitfactor of N microseconds before work starts -c,--cpuN spawn N workers spinning on sqrt()-i,--ioN spawn N workers spinning on sync()-m,--vmN spawn N workers spinning on malloc()/free()--vm-bytes B malloc B bytes per vm worker(default is 256MB)--vm-stride Btoucha byte every B bytes(default is4096)--vm-hang NsleepN secs beforefree(default none,0is inf)--vm-keep redirty memory instead of freeing and reallocating -d,--hddN spawn N workers spinning on write()/unlink()--hdd-bytes BwriteB bytes per hdd worker(default is 1GB)Example: stress--cpu8--io4--vm2--vm-bytes 128M--timeout10s Note: Numbers may be suffixed with s,m,h,d,y(time)or B,K,M,G(size).核心参数说明-c指定CPU压测进程数占用核心算力-m指定内存压测进程数配合--vm-bytes指定占用内存大小-d指定磁盘压测进程数模拟磁盘读写IO负载-t指定压测超时时间自动结束任务-i模拟系统IO调度压力4.2 场景1CPU压力测试启动2个CPU压测进程打满CPU算力通过top实时监控负载变化。# 占用2核CPU进行压测[rootcentos7 ~18:14:00]# stress -c 2stress: info:[3786]dispatching hogs:2cpu,0io,0vm,0hdd# 新开终端执行top监控[rootcentos7 ~18:16:09]# toptop-18:17:00 up1:17,3users, load average:1.52,0.45,0.19Tasks:190total,3running,187sleeping,0stopped,0zombie %Cpu(s):99.2us,0.8sy,0.0ni,0.0id,0.0wa,0.0hi,0.0si,0.0st KiB Mem:4026124total,3043064free,521136used,461924buff/cache KiB Swap:4063228total,4063228free,0used.3254380avail Mem PIDUSERPR NI VIRT RES SHR S %CPU %MEM TIME COMMAND3788root20073121000R100.00.01:00.97 stress3787root20073121000R99.70.01:00.76 stress1602root2003216283697228328S0.30.90:00.37 X1root20019391669964196S0.00.20:01.46 systemd2root200000S0.00.00:00.00 kthreadd4root0-20000S0.00.00:00.00 kworker/0:0H6root200000S0.00.00:00.07 ksoftirqd/04.3 场景2内存压力测试手动指定占用内存大小模拟内存高负载场景通过free命令对比压测前后内存占用。# 压测前查看内存[rootcentos7 ~18:18:08]# free -mtotal usedfreeshared buff/cache available Mem:39315082972274513179Swap:396703967# 启动1个内存进程占用1G内存[rootcentos7 ~18:18:21]# stress -m 1 --vm-bytes 1Gstress: info:[3916]dispatching hogs:0cpu,0io,1vm,0hdd# 新开1个终端看压测后内存已成功占用指定内存[rootcentos7 ~18:19:41]# free -mtotal usedfreeshared buff/cache available Mem:393115301949274512156Swap:396703967字段解析字段中文解释total总内存大小服务器物理内存总量。used已经被程序、系统占用的内存。free完全空闲、没被任何程序使用的裸内存。shared多个进程共享占用的内存。buff/cache缓冲区 页缓存。Linux 会利用空闲内存缓存磁盘文件提升读写速度内存紧张时可以快速回收这部分内存给应用程序。available重点运维判断内存优先看该指标。系统预估可以分配给新进程、无需 Swap 交换就能使用的内存总量计算公式available free 可回收的 buff/cache - 不可回收内存4.4 场景3磁盘IO压力测试模拟磁盘高频读写制造IO负载通过sar命令监控磁盘利用率%util。# 安装磁盘监控工具[rootcentos7 ~18:22:22]# yum install -y sysstat iotop# 启动磁盘压测单次写入2G文件[rootcentos7 ~18:20:28]# stress -d 1 --hdd-bytes 2Gstress: info:[3988]dispatching hogs:0cpu,0io,0vm,1hdd# 监控磁盘读写速度重点关注rd_sec/s和wr_sec/s单位是0.5k/每秒,每个secsector是512Byte还有%util[rootcentos7 ~18:24:24]# sar -dp 118时24分53秒 DEV tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util18时24分54秒 sda2852.480.002919920.791023.6464.1022.470.3084.85# 动态监控左右方向键调整排序列 代表当前排序列[rootcentos7 ~18:24:59]# iotopTotal DISK READ:0.00B/s|Total DISK WRITE:51.90M/s Actual DISK READ:0.00B/s|Actual DISK WRITE:62.16M/s TID PRIOUSERDISK READ DISK WRITESWAPIN IO COMMAND4573be/4 laoma0.00B/s51.90M/s0.00%96.45% stress-d1--hdd-bytes 2G1be/4 root0.00B/s0.00B/s0.00%0.00% systemd --switched-root--system--deserialize22字段解析字段中文说明DEV磁盘设备名称如 sdatps每秒向磁盘发起的 IO 请求次数一次读写合并算 1 次rd_sec/s每秒读取扇区数量1 扇区 512 字节wr_sec/s每秒写入扇区数量1 扇区 512 字节avgrq-sz单次 IO 请求的平均扇区大小反映读写块大小avgqu-sz磁盘 IO 请求队列平均长度队列越长阻塞越严重awaitIO 请求平均等待时间单位 ms包含队列等待 磁盘处理耗时svctmIO 请求磁盘实际处理耗时单位 ms新版内核该指标已失效不要参考%util磁盘设备繁忙时间占比接近 100% 代表磁盘 IO 瓶颈五、网络负载压力测试通过下载大体积镜像文件模拟网络带宽负载搭配sar工具实时监控网卡流量、带宽利用率。# 下载CentOS镜像制造网络负载原资源URL失效可替换可用镜像源测试[rootcentos7 ~18:31:49]# wget http://192.168.50.200/course-materials/iso/CentOS-7-x86_64-DVD-2207-02.iso# 每秒刷新一次网络设备流量状态[rootcentos7 ~18:31:04]# sar -n DEV 118时32分16秒 IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s18时32分17秒 lo0.000.000.000.000.000.000.0018时32分17秒 virbr0-nic0.000.000.000.000.000.000.0018时32分17秒 virbr00.000.000.000.000.000.000.0018时32分17秒 ens3347252.004391.0069838.66258.260.000.000.00字段解析字段中文含义IFACE网卡设备名称rxpck/s每秒接收数据包数量txpck/s每秒发送数据包数量rxkB/s每秒接收流量单位KB / 秒txkB/s每秒发送流量单位KB / 秒rxcmp/s每秒接收压缩数据包普通业务基本为 0txcmp/s每秒发送压缩数据包普通业务基本为 0rxmcst/s每秒接收组播数据包六、Linux系统监控最佳实践总结结合日常运维场景整理10条核心监控规范覆盖性能排查、预警、安全、自动化全维度核心指标实时监控重点跟踪CPU用户/系统占比、内存/swap使用率、磁盘IOPS/吞吐量、网络带宽与连接数使用top、vmstat、iostat快速排查。部署专业监控平台集群/长期监控推荐PrometheusGrafana可视化监控、Zabbix全功能告警、Nagios轻量监控。配置阈值告警CPU持续5分钟超80%、磁盘空间不足10%、内存过载等场景配置告警开启告警合并避免风暴。常态化进程服务监控定期检查Nginx、MySQL等核心服务状态排查异常进程、僵尸进程通过日志定位崩溃原因。日志集中管理整合系统日志、应用日志通过ELK栈分析错误日志、异常登录、磁盘故障信息。磁盘健康监控除空间外通过smartctl检测磁盘坏块空闲时执行fsck校验文件系统完整性。网络安全监控通过ss/netstat排查异常端口、高频陌生IP访问结合tcpdump抓包分析可疑流量。建立性能基线记录服务器正常空载、负载基线指标偏离时及时排查潜在故障。自定义自动化监控编写Shell/Python脚本适配个性化监控需求定时巡检并触发告警。监控权限安全管控最小化监控工具权限加密监控数据传输避免监控系统成为安全漏洞。合系统日志、应用日志通过ELK栈分析错误日志、异常登录、磁盘故障信息。磁盘健康监控除空间外通过smartctl检测磁盘坏块空闲时执行fsck校验文件系统完整性。网络安全监控通过ss/netstat排查异常端口、高频陌生IP访问结合tcpdump抓包分析可疑流量。建立性能基线记录服务器正常空载、负载基线指标偏离时及时排查潜在故障。自定义自动化监控编写Shell/Python脚本适配个性化监控需求定时巡检并触发告警。监控权限安全管控最小化监控工具权限加密监控数据传输避免监控系统成为安全漏洞。

相关新闻

C++实战100题:从语法到项目的系统训练指南

C++实战100题:从语法到项目的系统训练指南

1. 项目概述:为什么是“100题”? 如果你正在学习C,或者已经学了一阵子但感觉总在语法里打转,写不出像样的东西,那你大概率遇到过这个困境:书看了,视频也刷了,可一打开编辑器&#x…

2026/10/12 12:22:46 阅读更多 →
C++程序自毁卸载实现:Windows下安全清理与文件自删除技术

C++程序自毁卸载实现:Windows下安全清理与文件自删除技术

1. 项目概述:什么是“自毁卸载”?在C开发领域,尤其是涉及到客户端软件、安全工具或需要严格清理痕迹的应用程序时,“自毁卸载”是一个听起来颇具黑客色彩,实则非常实用的功能需求。它指的不仅仅是程序通过标准流程将自…

2026/9/26 12:04:04 阅读更多 →
手写SGI STL内存池:从原理到实现,深入C++性能优化核心

手写SGI STL内存池:从原理到实现,深入C++性能优化核心

1. 项目概述:为什么我们要“手搓”一个内存池?最近在整理C学习笔记,翻到了当年啃SGI STL源码时做的一个练习项目——手写移植其二级空间配置器(也就是大家常说的内存池)。这个项目,说实话,对当时…

2026/10/11 22:22:16 阅读更多 →

最新新闻

pandas-ta 实战:量化技术指标计算与回测流水线集成

pandas-ta 实战:量化技术指标计算与回测流水线集成

简介:Pandas TA 是一个面向 Python 3 的 Pandas 扩展库,专为量化交易、金融数据分析与股票市场研究场景设计,适合具备一定 Pandas 基础、希望快速调用技术指标的开发者与交易策略研究者。它内置 120 多个技术分析指标与实用函数,涵…

2026/10/13 7:09:57 阅读更多 →
APK加固与伪加密:从DEX加密原理到自研壳实践

APK加固与伪加密:从DEX加密原理到自研壳实践

简介:这是一套面向安卓开发者与安全测试人员的APK加固与伪加密完整工程包,解决应用被反编译、二次打包等常见风险。资源共92个文件,涵盖Java加壳工具源码、安卓加壳工程、Demo源程序、签名配置文件、构建脚本及说明文档等,通过工程…

2026/10/13 7:09:57 阅读更多 →
使用 Teachable Machine 训练图像分类模型并在 p5.js 中集成:ml5.js 完整实战指南

使用 Teachable Machine 训练图像分类模型并在 p5.js 中集成:ml5.js 完整实战指南

教程文档示例工程 【免费下载链接】website-archive Archive of the Coding Train website (first version) 项目地址: https://gitcode.com/gh_mirrors/we/website-archive 点击查看 免费下载 本教程围绕 The Coding Train 的「Teachable Machine: Images」视频展…

2026/10/13 7:09:57 阅读更多 →
黑黄配色商务PPT模板设计实操:母版、版式与兼容性维护

黑黄配色商务PPT模板设计实操:母版、版式与兼容性维护

简介:这款黑黄配色商务报告PPT模板专为职场商务汇报场景设计,适合需要快速制作工作概况、阶段成就、经验教训或阶段计划等内容的用户选用。模板以黑色为底、黄色高亮,兼顾稳重感与信息突出度,内置目录页、数据图表、图片展示页等常…

2026/10/13 7:09:57 阅读更多 →
Spring Boot自动配置机制:Spring.factories文件解析与实践

Spring Boot自动配置机制:Spring.factories文件解析与实践

1. Spring.factories 文件解析与应用场景Spring.factories 是 Spring Boot 自动配置机制中的关键配置文件,它采用 Java 的 SPI(Service Provider Interface)机制实现模块化扩展。这个文件通常位于 META-INF 目录下,格式为键值对形…

2026/10/13 7:09:57 阅读更多 →
QOwnNotes 的 AppImage 安装与便携模式完全指南:下载、运行、数据目录与密钥环配置

QOwnNotes 的 AppImage 安装与便携模式完全指南:下载、运行、数据目录与密钥环配置

桌面应用 【免费下载链接】QOwnNotes QOwnNotes is a plain-text file notepad and todo-list manager with Markdown support and Nextcloud / ownCloud integration. 项目地址: https://gitcode.com/gh_mirrors/qo/QOwnNotes 点击查看 免费下载 本篇技术指南聚焦…

2026/10/13 7:08:57 阅读更多 →

日新闻

物联网系统集成避坑指南:从选型到验收的关键要点

物联网系统集成避坑指南:从选型到验收的关键要点

做了这么多年物联网系统集成的项目,我最大的感受是,大部分坑不是出在技术前沿,而是出在一些看起来很平常的地方。设备选了便宜的、协议没问清楚、现场没摸透、验收标准写得含糊——这些细枝末节,最后都会变成延期、超支和扯皮的大…

2026/10/13 0:00:57 阅读更多 →
ESP32舵机控制全攻略:从PWM原理到高级玩法与常见故障排查

ESP32舵机控制全攻略:从PWM原理到高级玩法与常见故障排查

如果你玩ESP32有一阵子了,很难不碰到舵机控制这道坎。做智能小车要转方向,做机械臂要抬关节,做云台要偏航俯仰,背后都是同一个东西在干活:舵机。而我见过太多人卡在“代码能编译、舵机就是不听话”这个阶段&#xff0c…

2026/10/13 0:00:57 阅读更多 →
CAN总线原理与STM32实战:抗干扰、仲裁、错误处理全解析

CAN总线原理与STM32实战:抗干扰、仲裁、错误处理全解析

1. 为什么CAN总线至今仍是工业现场的“硬通货”?——从汽车底盘到智能温室的真实需求你有没有拆过一辆老款燃油车的中控台?或者调试过某高校实验室里那台跑着Modbus协议却频频丢帧的PLC控制柜?又或者,在某个农业物联网项目里&…

2026/10/13 0:00:57 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/13 2:54:56 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/12 0:16:38 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/13 1:58:08 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 21:05:09 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 14:48:49 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 18:11:17 阅读更多 →