叁叁肆

这个世界会好吗

453篇博客

如何使用BurnInTest和cpulimit控制CPU负载

叁叁肆2018-11-22 13:10

此文已由作者邹珍珍授权网易云社区发布。

欢迎访问网易云社区,了解更多网易技术产品运营经验。


   本文将介绍BurnInTestcpulimit两款工具的安装和使用,以及两款工具结合使用来控制CPU负载。两款工具在我测试中的使用背景是:在宿主机CPU超售下测试云主机CPU性能,需要控制宿主机CPU负载在0%25%50%75%水平,从而在不同CPU负载下测试云主机CPU性能。

一、cpulimit工具

1. cpulimit介绍

    cpulimit是一个开源的cpu使用限制工具,可以针对某个进程名、pid等来限制cpu使用率。

2. cpulimit安装和使用

 (1)下载安装包

    https://sourceforge.net/projects/cpulimit/files/cpulimit/cpulimit/cpulimit-1.1.tar.gz/download?use_mirror=nchc

 (2)安装方法

    tar zxf cpulimit-xxx.tar.gz

    cd cpulimit-xxx

    make

 (3)运行方法

    ./cpulimit -p {进程ID} -l {CPU限制负载大小}

  *注意:上面截图并没有演示cpulimit运行,只是如何执行的截图,具体演示会在下面结合BurnInTest一起使用。

二、BurnInTest工具

1. BurnInTest介绍

    BurnInTestPassMark公司提供的压力测试工具,用来测试计算机稳定性和可靠性。测试过程中,BurnInTest将计算机所有主要子系统在重负荷状态下的运作,可在短时间内有效测试CPU,内存,IO,网络等。

    BurnInTest运行时,会将机上所有的CPU使用率到100%。在我们的测试中,BurnInTest用来对多台云主机(宿主机上除了一台被测的云主机外,其他所有的云主机都是加压机)的CPU加压,结合cpulimit限制BurnInTest进程的cpu使用率,从而控制宿主机CPU达到特定负载。

2. BurnInTest安装和使用

  (1)下载安装包

    http://www.passmark.com/products/bitlinux.htm

  (2)安装和使用方法

    下载linux版本,解压后,选择64位目录,直接使用命令行工具。

    *注意:其中参数-D 指定运行几分钟,其他参数见下面截图


  (3)执行过程中出现的错误,我在三台不同的云主机上使用burnintest都出现了下面两个错误。

     [错误一:]

     解决方法:apt-get update

              apt-get install libasound2

     [错误二:]

     解决方法:下载 libc6_2.17-0ubuntu4_amd64.deb

               执行dpkg -i ipts libc6_2.17-0ubuntu4_amd64.deb

  (4)遇到问题不要害怕,基本google下懂能搜到,安装好报错信息中缺省的东西即可。安装成功后,执行界面是以下这样的,可以看到目前在测试的有CPU、内存及网络。测试项目是可以在cmdline_config.txt 配置文件中设置的,配置文件也在64bit目录下。在我的测试中,只要对CPU进行加压,所以会在配置文件中注释掉关于内存,磁盘和网络的测试段落。

    用top可以看到此时云主机上CPUidle%值为0%burnintest进程已经将CPU压满。

三、结合BurnInTestcpulimit控制CPU负载

  (1)使用BurnInTest工具,对CPU进行加压:./bint_cmd_line_x6 –D 5,以下是我更改了配置文件的,故只看到对CPU加压。看到此时该进程id27453,该进程%CPU99.5%,此时云主机的idle%0%


  (2)另开一个session,执行./cpulimit -p 27027 -l 20,就可以控制该云主机上CPU负载约为20%


     到这里就完成了对CPU负载的控制^_^


免费领取验证码、内容安全、短信发送、直播点播体验包及云服务器等套餐

更多网易技术、产品、运营经验分享请点击