Linux 如何制造高 CPU 负载?一文搞懂压测与 Stress 测试你的 Linux 服务器真的稳吗?在高并发流量冲击下,它是稳如泰山还是直接“罢工”?今天,我们要介绍一款 Linux 性能测试界的“六边形战士”——stress-ng。它不仅能模拟 CPU 满载,还能全方位压测内存、磁盘和 I/O,是系统调优和稳定性测试的必备神器。在 Linux 世界中,早期的 stress 工具广为人知,但随着硬件的发展,它已显得有些力不从心。stress-ng 作为其升级版,功能强大到令人发指:•全方位覆盖: 支持超过 300 个测试压力源(Stressors)。•多维度测试: 涵盖 CPU、内存、I/O、磁盘、网络,甚至包括文件系统和各种系统调用。•深层挖掘: 能够模拟各种复杂的计算机故障和性能瓶颈,帮助你发现内核中的潜在问题。stress-ng 已经进入了主流 Linux 发行版的标准仓库,安装只需一行命令:•Debian/Ubuntu/Linux Mint: sudo apt install stress-ng
sudo yum install stress-ng # 或者使用 dnf
stress-ng 的命令格式非常直观,基本结构为:stress-ng [选项] [参数]。 stress-ng --cpu 4 --timeout 60s
stress-ng --cpu 0 --timeout 60s
stress-ng 提供了多种 CPU 算法(如矩阵乘法、快速傅里叶变换等): stress-ng --cpu 2 --cpu-method matrixprod --timeout 30s
模拟内存消耗,检查系统在 OOM(内存溢出)边缘的反应:stress-ng --vm 2 --vm-bytes 1G --timeout 60s
(启动 2 个内存工作进程,每个占用 1GB 内存) stress-ng --io 4 --timeout 60s
stress-ng --hdd 2 --hdd-opts wr-seq --timeout 60s
在现实场景中,压力往往不是单一的。stress-ng 允许你组合多种测试:stress-ng --cpu 4 --io 2 --vm 1 --vm-bytes 1G --timeout 60s --metrics-brief
•--metrics-brief: 这个参数非常有用,它会在测试结束后显示一份简单的统计报告,告诉你每秒完成了多少次操作(Ops),直观量化性能。1.硬件稳定性验证: 新服务器上架前,跑一遍压力测试,排除硬件缺陷。2.监控告警测试: 看看当 CPU 达到 100% 时,你的监控系统是否会按预期报警。3.内核开发与调试: 开发者常用它来触发系统调用异常,优化内核代码。stress-ng 是每一位 Linux 运维工程师和后端开发者的工具箱里必不可少的“利剑”。但在使用时请务必小心:不要在生产环境的高峰期运行这些命令,除非你真的想体验一回手动制造“生产事故”的快感!温馨提示: 压测时请开启另一个终端窗口,运行 top 或 htop 实时观察系统状态,确保一切尽在掌握。