给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

 

 

 


 
 
posted @ 2023-06-12 14:26  往事已成昨天  阅读(3001)  评论(0编辑  收藏  举报