第 40 章 使用压力测试实时系统
stress-ng
工具可衡量系统的能力,以便保持在不可或缺的状况下保持有效效率。stress-ng
工具是一个压力性工作负载生成器,用于加载并压力所有内核接口。它包括广泛的压力机制,称为 stressors。压力测试使机器用硬和出差硬件问题,如在系统过度运行和操作系统错误等。
270 不同的测试会超过 270。这包括用于练习浮动点、整数、位操作、控制流和虚拟内存测试的 CPU 特定的测试。
使用 stress-ng
工具时要谨慎,因为某些测试可能会影响系统的rmal 区三点。这可能会影响系统性能,并导致过度的系统崩溃,这可能会难以停止。
40.1. 测试 CPU 浮动点单元和处理器数据缓存
floating-point 单元是处理器的功能部分,用于执行浮动点操作。浮点数单元处理数学操作,并将浮动数字或十进制计算更容易。
使用 --matrix-method
选项,您可以压力测试 CPU 浮动点操作和处理器数据缓存。
先决条件
- 系统的 root 权限
流程
要测试一个 CPU 上的浮动点 60 秒,请使用
--matrix
选项:# stress-ng --matrix 1 -t 1m
要对多个 CPU 运行多个 stressors,请使用
--times
或-t
选项:# stress-ng --matrix 0 -t 1m stress-ng --matrix 0 -t 1m --times stress-ng: info: [16783] dispatching hogs: 4 matrix stress-ng: info: [16783] successful run completed in 60.00s (1 min, 0.00 secs) stress-ng: info: [16783] for a 60.00s run time: stress-ng: info: [16783] 240.00s available CPU time stress-ng: info: [16783] 205.21s user time ( 85.50%) stress-ng: info: [16783] 0.32s system time ( 0.13%) stress-ng: info: [16783] 205.53s total time ( 85.64%) stress-ng: info: [16783] load average: 3.20 1.25 1.40
带有 0 stressors 的特殊模式,查询要运行的可用 CPU 数量,从而无需指定 CPU 号。
需要的总 CPU 时间为 4 x 60 秒(240 秒),其中 0.13% 在内核中是 85.50%,所有 CPU 的
stress-ng
运行 85.64%。要使用 POSIX 消息队列测试在进程间传递的消息,请使用
-mq
选项:# stress-ng --mq 0 -t 30s --times --perf
mq
选项配置特定的进程,以使用 POSIX 消息队列强制上下文切换。此压力测试旨在降低数据缓存未命中。