CPU负载测试是评估计算机中央处理器(CPU)性能的一种方法。该测试旨在确定CPU在处理各种工作负载时的表现,并可以用于验证硬件配置的稳定性、识别性能瓶颈以及进行系统优化。
通过进行cpu负载测试,我们可以对性能进行评估: 测试CPU在不同工作负载下的性能,了解其处理能力和效率。也可以进行稳定性测试: 通过模拟高负载情况,验证系统在长时间运行中是否稳定。进行负载测试的方法也有很多。可以用第三方工具,也可以用linux的原生命令。话不多说,我们直接开搞
我们这次负载测试使用的命令是yes。linux系统自带的。yes 是一个在Linux和类Unix系统中的命令行工具,其主要作用是不断地输出指定的字符串,默认情况下是一直输出 “y” 你也可以提供你想输出的字符串,类似这样 yes "Hello, World!"
yes 命令可以用于简单的CPU负载测试。虽然 yes 主要设计用于在终端中输出重复的字符串,但其运行时会导致CPU的高负载。
步骤如下:
- 首先ssh登录到你的服务器
- 执行
cat /proc/cpuinfo
来确认你的cpu核数,输入命令后我们看processor。他的索引是从0开始的。比如我这里显示1,证明我是有2核 - 接着我们就可以执行yes命令了。比如我这里是2个核心,那么我需要执行2次这个命令
yes > /dev/null &
即可。 执行完后程序会后台运行。 - 然后我们输入
top
命令,来查看当前cpu的负载情况 -
程序输出是这样的:
top - 10:22:12 up 129 days, 9:49, 1 user, load average: 0.31, 0.09, 0.07 Tasks: 110 total, 3 running, 107 sleeping, 0 stopped, 0 zombie %Cpu(s): 98.8 us, 1.2 sy, 0.0 ni, 0.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st KiB Mem : 22.1/2914028 [||||||||||||||| ] KiB Swap: 31.9/1047548 [|||||||||||||||||||||| ] PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 2403 root 20 0 108060 620 524 R 99.3 0.0 0:13.23 yes 2406 root 20 0 108060 616 524 R 99.3 0.0 0:11.24 yes
- 可以看到2个yes进程把cpu已经都打满了。 如果我们想终端cpu负载测试,让cpu负载变成正常,那么只需要输入命令
killall yes
即可。 - 如果你想测试50%负载,那么就执行1次这
yes > /dev/null &
即可,依次类推
总体而言,yes是一个比较简单实用的,适用于基础的cpu负载测试,但是缺点是不支持太多参数,在后面,我会介绍更强大的负载测试工具stress 。创作不易,如果您觉得这篇文章对你有帮助,不妨给我点个赞,这将是我继续分享优质内容的动力。