当前位置:首页>Linux>Linux 如何制造高 CPU 负载?一文搞懂压力测试

Linux 如何制造高 CPU 负载?一文搞懂压力测试

  • 2026-09-02 20:35:28
Linux 如何制造高 CPU 负载?一文搞懂压力测试
正文内容Reading Time: 6 min
Linux 如何制造高 CPU 负载?一文搞懂压测与 Stress 测试
导读:
你的 Linux 服务器真的稳吗?在高并发流量冲击下,它是稳如泰山还是直接“罢工”?今天,我们要介绍一款 Linux 性能测试界的“六边形战士”——stress-ng。它不仅能模拟 CPU 满载,还能全方位压测内存、磁盘和 I/O,是系统调优和稳定性测试的必备神器。
◆ ◆ ◆
一、 什么是 stress-ng?
在 Linux 世界中,早期的 stress 工具广为人知,但随着硬件的发展,它已显得有些力不从心。stress-ng 作为其升级版,功能强大到令人发指:
•
全方位覆盖: 支持超过 300 个测试压力源(Stressors)。
•
多维度测试: 涵盖 CPU、内存、I/O、磁盘、网络,甚至包括文件系统和各种系统调用。
•
深层挖掘: 能够模拟各种复杂的计算机故障和性能瓶颈,帮助你发现内核中的潜在问题。
◆ ◆ ◆
二、 快速安装
stress-ng 已经进入了主流 Linux 发行版的标准仓库,安装只需一行命令:
•
Debian/Ubuntu/Linux Mint:
    sudo apt install stress-ng
•
RHEL/CentOS/Fedora:
    sudo yum install stress-ng  # 或者使用 dnf
•
Arch Linux:
    sudo pacman -S stress-ng
◆ ◆ ◆
三、 实战:如何“折磨”你的服务器?
stress-ng 的命令格式非常直观,基本结构为:stress-ng [选项] [参数]。
1. CPU 压测:火力全开
想要看看 CPU 的极限?
•
压测指定核心数:
    stress-ng --cpu 4 --timeout 60s
(启动 4 个工作进程,持续 60 秒)
•
压测所有核心:
如果你想让所有核心都满载,可以将核心数设为 0:
    stress-ng --cpu 0 --timeout 60s
•
指定特定的压测算法:
stress-ng 提供了多种 CPU 算法(如矩阵乘法、快速傅里叶变换等):
    stress-ng --cpu 2 --cpu-method matrixprod --timeout 30s
2. 内存压测:考验吞吐量
模拟内存消耗,检查系统在 OOM(内存溢出)边缘的反应:
stress-ng --vm 2 --vm-bytes 1G --timeout 60s
(启动 2 个内存工作进程,每个占用 1GB 内存)
3. 磁盘与 I/O 压测:模拟高负载读写
如果你怀疑服务器的硬盘或 I/O 调度有瓶颈:
•
模拟 I/O 压力:
    stress-ng --io 4 --timeout 60s
•
模拟持续写入(HDD):
    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 实时观察系统状态,确保一切尽在掌握。
THE END

最新文章

随机文章