服务器CPU常用测试工具(Linux)

发布时间:2026/8/15 23:40:08
服务器CPU常用测试工具(Linux) 一 CPU工具stress和stress-ngstress 和 stress-ng 是 Linux 系统下两款经典的压力测试工具。它们的主要用途是给系统施加可配置的 CPU、内存、I/O 或磁盘负载用于评估系统在极端条件下的稳定性和表现帮助发现那些只在重负载下才会暴露的 bug。简单来说stress 是功能较基础的原版工具而 stress-ng 是它的升级版功能更强、测试场景更丰富安装方法在大多数 Linux 发行版中可以通过包管理器轻松安装Ubuntu/Debian:sudoaptupdatesudoaptinstallstress# 安装原版 stresssudoaptinstallstress-ng# 安装增强版 stress-ngCentOS/RHEL:sudoyuminstallepel-release-ysudoyuminstallstress stress-ng-ystress 用法详解基础版stress 是一款轻量级工具通过创建多个进程来消耗特定资源。其基本命令格式为 stress [选项]。核心参数参数 说明 示例-c,--cpuN启动 N 个 worker 进程执行计算密集型操作求随机数平方根。 stress-c4-i,--ioN启动 N 个 worker 进程执行同步 I/O 操作调用 sync()。 stress-i2-m,--vmN启动 N 个 worker 进程进行内存分配和释放malloc()/free()。 stress-m2--vm-bytesB每个 vm worker 分配的内存大小默认 256MB。 stress-m1--vm-bytes 1G -d,--hddN启动 N 个 worker 进程进行磁盘写入write()/unlink()。 stress-d1--hdd-bytesB每个 hdd worker 写入的数据量默认 1GB。 stress-d1--hdd-bytes 3G -t,--timeoutN设置测试运行时长超过后自动退出。 stress-c4-t60s -v,--verbose输出更详细的信息。 stress-c4-v数字后缀时间参数可以用 s (秒), m (分), h (时), d (天)大小参数可以用 B (字节), K (KB), M (MB), G (GB)。命令示例# 1. 让4个CPU核心满载持续60秒stress-c4-t60s# 2. 模拟内存压力启动2个进程每个分配256MB内存持续30秒stress-m2--vm-bytes 256M-t30s# 3. 综合压力测试2个CPU进程 1个I/O进程 1个内存进程(1GB)stress-c2-i1-m1--vm-bytes 1G-t60sstress-ng 用法详解增强版stress-ng 是 stress 的升级版本完全兼容 stress 的参数但提供了数百种更精细的压力测试选项可以说是系统压力测试的“瑞士军刀”。核心优势更丰富的测试维度除了 CPU、内存、I/O还能测试网络、文件系统、进程调度、安全特性如 AppArmor等。更精细的控制可以指定 CPU 占用百分比 (–cpu-load)让 CPU 在特定负载下运行而非总是100%。针对性的压力算法支持圆周率计算、矩阵运算、加密哈希等多种具体算法能更精确地模拟特定场景。常用参数参数 说明 示例--cpuN启动 N 个 CPU 压力 worker。 stress-ng--cpu4--cpu-loadP配合--cpu使用设定每个 CPU 核的目标负载百分比(0-100)。 stress-ng--cpu2--cpu-load70--vmN启动 N 个内存压力 worker。 stress-ng--vm2--vm-bytesB所有 vm worker 占用的总内存大小。 stress-ng--vm1--vm-bytes 2G --vm-keep 让 vm worker 一直占用内存不再重复分配/释放。 stress-ng--vm2--vm-bytes 1G --vm-keep--ioN启动 N 个 I/O 压力 worker可配合 --io-pattern 指定读写模式。 stress-ng--io4--io-pattern randrw--timeoutT设置测试时长如 60s、10m。 stress-ng--cpu4--timeout10m命令示例# 1. 精准控制CPU负载让2个CPU核以70%的负载运行持续30秒stress-ng--cpu2--cpu-load70-t30s# 2. 稳定内存占用启动1个进程一直占用2GB内存stress-ng--vm1--vm-bytes 2G --vm-keep# 3. 混合测试4个CPU压力 1个内存压力(1GB持续占用) 2个I/O压力运行1分钟stress-ng--cpu4--vm1--vm-bytes 1G --vm-keep--io2-t1m主要区别与选择建议特性 stress stress-ng功能丰富度 基础CPU, 内存, I/O, 磁盘 极其丰富 (上百种测试场景)CPU负载控制 只能实现100%满载 可精确控制 负载百分比 (–cpu-load)测试场景 通用压力模拟 精细化模拟 (浮点运算、网络、文件系统等)适用场景 快速、基础的负载测试 深入、全面的系统稳定性与性能评估一句话总结如果你需要的是一个简单、快速的负载生成器stress 就足够了如果你需要进行深入、全面、可定制的系统压力测试stress-ng 是更强大的选择。⚠️ 注意事项非基准测试工具官方文档明确指出stress 和 stress-ng 不是精确的基准测试Benchmark工具它们主要用于给系统制造负载以测试稳定性。谨慎使用这些工具会给系统带来极高的负载可能导致系统响应变慢、服务不可用甚至崩溃。切勿在生产环境或关键业务系统上随意运行建议在隔离的测试环境中使用。监控与配合进行压力测试时最好配合 top、htop、vmstat、iostat 等系统监控工具实时观察系统资源使用情况。