此文已由作者邹珍珍授权网易云社区发布。
欢迎访问网易云社区,了解更多网易技术产品运营经验。
本文将介绍BurnInTest和cpulimit两款工具的安装和使用,以及两款工具结合使用来控制CPU负载。两款工具在我测试中的使用背景是:在宿主机CPU超售下测试云主机CPU性能,需要控制宿主机CPU负载在0%、25%、50%和75%水平,从而在不同CPU负载下测试云主机CPU性能。
一、cpulimit工具
1. cpulimit介绍
cpulimit是一个开源的cpu使用限制工具,可以针对某个进程名、pid等来限制cpu使用率。
2. cpulimit安装和使用
(1)下载安装包
(2)安装方法
tar zxf cpulimit-xxx.tar.gz
cd cpulimit-xxx
make
(3)运行方法
./cpulimit -p {进程ID} -l {CPU限制负载大小}
*注意:上面截图并没有演示cpulimit运行,只是如何执行的截图,具体演示会在下面结合BurnInTest一起使用。
二、BurnInTest工具
1. BurnInTest介绍
BurnInTest是PassMark公司提供的压力测试工具,用来测试计算机稳定性和可靠性。测试过程中,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可以看到此时云主机上CPU的idle%值为0%,burnintest进程已经将CPU压满。
三、结合BurnInTest和cpulimit控制CPU负载
(1)使用BurnInTest工具,对CPU进行加压:./bint_cmd_line_x6 –D 5,以下是我更改了配置文件的,故只看到对CPU加压。看到此时该进程id为27453,该进程%CPU为99.5%,此时云主机的idle%为0%。
(2)另开一个session,执行./cpulimit -p 27027 -l 20,就可以控制该云主机上CPU负载约为20%。
到这里就完成了对CPU负载的控制^_^
免费领取验证码、内容安全、短信发送、直播点播体验包及云服务器等套餐
更多网易技术、产品、运营经验分享请点击。