给CPU进行压力测试-----stress
stress-------压测
在Linux环境中对CPU进行压力测试,主要是为了测试系统的CPU负载能力和稳定性,可以使用多种工具和命令来进行测试。本文主要介绍两种常用的CPU压力测试命令和它们的输出结果。
1. stress命令
“
stress
是一种常用的CPU和内存压力测试工具,可以模拟CPU的多种工作负载。使用该命令可以轻松测试CPU的性能,同时也可以测试系统的稳定性。
安装stress命令
在Debian/Ubuntu系统中,可以使用以下命令来安装stress:
sudo apt-get install stress
在RHEL/CentOS系统中,可以使用以下命令来安装stress:
sudo yum install stress
使用stress命令
使用stress命令进行CPU压力测试,需要指定以下参数:
-c <number>
:指定同时运行的CPU核心数,例如-c 4
表示使用4个核心进行测试。-t <time>
:指定测试的时间长度,例如-t 60
表示测试60秒。
以下是一个使用stress命令进行CPU压力测试的例子:
stress -c 4 -t 60
该命令表示同时使用4个CPU核心进行测试,测试时间为60秒。执行该命令后,可以看到类似下面的输出:
stress: info: [8640] dispatching hogs: 4 cpu, 0 io, 0 vm, 0 hdd
stress: info: [8640] successful run completed in 60s
该输出表示共使用了4个CPU核心来运行stress测试,测试成功完成,测试时间为60秒。
2. mpstat命令
“另一种常用的CPU压力测试命令是
mpstat
,使用该命令可以显示系统所有CPU的利用率和平均利用率。
安装mpstat命令
在Debian/Ubuntu系统中,可以使用以下命令来安装sysstat工具包,其中包含了mpstat命令:
sudo apt-get install sysstat
在RHEL/CentOS系统中,可以使用以下命令来安装sysstat工具包:
sudo yum install sysstat
使用mpstat命令
使用mpstat命令进行CPU压力测试,需要指定以下参数:
-P ALL
:指定监测所有CPU的利用率。
以下是一个使用mpstat命令进行CPU压力测试的例子:
mpstat -P ALL 5 3
“该命令表示每5秒输出1次监测结果,共输出3次。执行该命令后,可以看到类似下面的输出:
05:06:56 CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle
05:06:56 all 1.86 0.00 0.49 0.99 0.00 0.00 0.00 0.00 0.00 96.66
05:06:56 0 0.98 0.00 0.49 1.48 0.00 0.00 0.00 0.00 0.00 97.05
05:06:56 1 4.95 0.00 0.49 0.00 0.00 0.00 0.00 0.00 0.00 94.56
......
05:07:06 CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle
05:07:06 all 1.98 0.00 0.49 1.48 0.00 0.00 0.00 0.00 0.00 96.05
05:07:06 0 0.99 0.00 0.50 2.97 0.00 0.00 0.00 0.00 0.00 95.53
05:07:06 1 3.96 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 96.04
......
05:07:16 CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle
05:07:16 all 2.50 0.00 0.50 1.50 0.00 0.00 0.00 0.00 0.00 95.50
05:07:16 0 1.00 0.00 0.50 3.00 0.00 0.00 0.00 0.00 0.00 95.50
05:07:16 1 5.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 95.00
......
“该输出表示所有CPU的利用率,以及平均利用率和每个CPU核的利用率,每次输出之间隔了5秒,共输出了3次。可以通过这些数据分析CPU的性能和稳定性情况。
以上就是Linux中对CPU进行压力测试的两种常用命令的介绍和使用方法以及输出结果的解析。
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
安装stress:
stress-1.0.2-1.el7.rf.x86_64.rpm下载地址,centos7适用:
fr2.rpmfind.net/linux/dag/redhat/el7/en/x86_64/dag/RPMS/stress-1.0.2-1.el7.rf.x86_64.rpm
安装:
rpm -Uivh stress-1.0.2-1.el7.rf.x86_64.rpm
stress-ng源码下载:
https://kernel.ubuntu.com/~cking/tarballs/stress-ng/
编译:
make
安装:
sudo make install
yum安装:
yum install -y epel-release
yum intsall -y stress
消耗 CPU 资源
stress -c 2
(使用htop或者top查看想打满几颗cpu就输入,对应数字即可)
消耗内存资源
#模拟产生2个进程,每个进程分配2个G内存 stress --vm 2 --vm-bytes 2000M --vm-keep
使用top可以看到,内存free减少,wa和la明显变大很多
无限制消耗 IO 资源
#产生 4 个进程,每个进程都反复调用 sync 函数将内存上的内容写到硬盘上
stress -i 4
1
2
使用iotop 或者iostat 查看io资源
指定文件大小,压测磁盘io
#创建一个进程不断的在磁盘上创建 10M 大小的文件并写入内容
stress -d 1 --hdd-bytes 10M
1
2
测试磁盘读写能力
使用time dd命令:
/dev/zero 是一个伪设备,它只产生空字符流,对它不会产生IO
/dev/null 是伪设备,相当于黑洞,of到该设备不会产生IO
#1. 纯测试磁盘写速度
time dd if=/dev/zero of=test.dd bs=1M count=2000 常见参考值见这个,但不太准确,因为只写入系统缓存就返回
time dd if=/dev/zero of=test.dd bs=64k count=16k conv=fsync 较准确
time dd if=/dev/zero of=test.dd bs=64k count=4k oflag=dsync 真实写入磁盘
# 2. 纯测试磁盘读速度
time dd if=test.dd of=/dev/null bs=1M /dev/null是伪设备,相当于黑洞,of到该设备不会产生IO,所以,这个命令的IO只发生在/dev/sdb1上,也相当于测试磁盘的读能力
time dd if=/dev/vda1 of=/dev/null bs=8k 测试vda1设备的读能力
# 3. 同时测试读写能力
time dd if=/dev/sdb of=/testrw.dbf bs=4k
参考:
https://www.cnblogs.com/wangcp-2014/p/14153791.html
https://blog.csdn.net/zzhangsiwei/article/details/119989613
https://blog.csdn.net/A642960662/article/details/123030151
“