虚拟机性能测试

性能测试  时间:2021-04-01  阅读:()
H3CCASJMeter性能测试操作指导书Copyright2015杭州华三通信技术有限公司版权所有,保留一切权利.
非经本公司书面许可,任何单位和个人不得擅自摘抄、复制本文档内容的部分或全部,并不得以任何形式传播.
本文档中的信息可能变动,恕不另行通知.
i目录1简介·······························································································································12配置前提·························································································································13配置环境·························································································································13.
1服务器·························································································································13.
2软件···························································································································14组网需求·························································································································25测试步骤·························································································································25.
1准备测试环境················································································································25.
1.
1准备测试虚拟机····································································································25.
1.
2准备测试工具运行环境···························································································45.
1.
3准备JMeter测试工具····························································································65.
1.
4准备Web服务器··································································································65.
2配置性能加压工具··········································································································85.
3测试不同并发用户时的性能····························································································125.
3.
110000并发用户··································································································125.
3.
220000并发用户··································································································135.
3.
330000并发用户··································································································145.
3.
450000并发用户··································································································166经验总结·······················································································································176.
1JMeter和Tomcat服务内存配置······················································································176.
2虚拟机内存/vCPU数量对并发性能的影响··········································································1811简介本文档用于介绍H3CCAS云计算管理平台下使用JMeter工具测试性能的使用方法和操作步骤.
JMeter是Apache组织开发的基于Java的压力测试工具,最早是为了测试Tomcat的前身JServ的执行效率而开发的,目前最新版本是2.
13,其测试能力也不再局限于对Web服务器的测试,而是涵盖数据库、JMS、WebService、LDAP等多种对象的测试能力.
使用JMeter测试工具,可以模拟大量负载来测试应用系统的健壮性及分析不同负载下的整体性能.
2配置前提本文档中的配置均是在实验室环境下进行的配置和验证,配置前服务器和软件的所有参数均采用出厂时的缺省配置.
如果您已经对被测试对象进行了配置,为了保证配置效果,请确认现有配置和以下举例中的配置不冲突.
3配置环境3.
1服务器本文档不严格与具体硬件服务器型号对应,如果使用过程中与产品实际情况有差异,请参考相关产品手册,或以设备实际情况为准.
本文档使用的服务器型号与配置如下表所示,该环境不作为实际部署时的强制环境或推荐环境,只需要服务器能够兼容H3CCAS云计算管理平台即可完成本配置.
配置项说明服务器#1(H3CCASCVM虚拟化管理平台)H3CFlexServerB390CPU:2路6核,IntelXeonE5-26200@2.
00GHz内存:32GB服务器#2(H3CCASCVK虚拟化内核系统)HPProLiantBL460cG7CPU:2路6核,IntelXeonX5675@3.
07GHz内存:96GB3.
2软件软件版本服务器虚拟化管理软件H3CCAS-E0218(KVMKernel3.
13.
6)JavaSDKJavaSEDevelopmentKit8u66Windows64位版本,下载地址:http://www.
oracle.
com/technetwork/java/javase/downloads/jdk8-downloads-2133151.
htmlWeb服务器Tomcat8.
0.
29Windows64位版本,下载地址:http://tomcat.
apache.
org/download-80.
cgi性能测试工具JMeter2.
13R1665067Windows64位版本,下载地址:http://jmeter.
apache.
org/download_jmeter.
cgi24组网需求图1使用JMeter进行性能测试逻辑组网图组网说明:(1)服务器#1和服务器#2分别安装H3CCASCVM虚拟化管理平台与H3CCASCVK虚拟化内核系统,后端没有挂载共享存储设备,使用服务器#2本地磁盘承载虚拟机数据.
(2)在服务器#2上创建新的虚拟机,安装WindowsServer2008R2数据中心版64位操作系统、Tomcat服务器和JMeter性能测试工具.
主要的验证项包括:(1)在VM上使用JMeter性能测试工具分别模拟1万、2万、3万和5万用户并发访问虚拟机,观察和记录并发用户访问情况下的HTTP请求与响应时间以及吞吐量.
(2)尝试不同虚拟机资源(vCPU和内存)配置情况下的并发用户访问性能差异.
5测试步骤5.
1准备测试环境5.
1.
1准备测试虚拟机步骤1创建虚拟机.
#系统管理员登录H3CCASCVM虚拟化管理平台,在服务器#2上创建一个新的虚拟机,虚拟机硬件资源配置如下表所示.
资源大小vCPU2核vMem8GB3vDisk1*50GB(Virtio),位于服务器本地磁盘.
vNIC1(Virtio),开启内核加速上述虚拟机资源配置仅为测试环境下的配置,不作为生产环境中业务虚拟机的推荐配置.
生产环境中的虚拟机配置应该根据业务本身对CPU、内存、磁盘和网卡等资源的实际需求进行评估和测试后最终确定.
步骤2安装虚拟机操作系统.
#通过控制台(VNC)为虚拟机安装WindowsServer2008R2数据中心版64位操作系统.
步骤3安装CAStools工具.
#在H3CCASCVM虚拟化管理平台中,在线修改虚拟机,为虚拟机挂载CAStools工具,并在操作系统内安装CAStools工具.
图2在虚拟机光驱中挂载CAStools工具45.
1.
2准备测试工具运行环境步骤1下载和安装JDK运行环境.
JMeter的运行环境需要与JVM6或更高版本兼容.
#从Oracle官网下载JDK,本文档使用Windows64位环境下的JDK8Update66,下载地址为:http://www.
oracle.
com/technetwork/java/javase/downloads/jdk8-downloads-2133151.
html.
#将下载后的JDK包拷贝到虚拟机操作系统内,并安装.
步骤2设置Java环境变量.
#在虚拟机操作系统内,鼠标依次点击"我的电脑"->"属性"->"高级"->"环境变量".
#在"系统变量"属性框中,点击按钮,在弹出的"新建系统变量"对话框中,输入"变量名"为"JAVA_HOME","变量值"为JDK安装路径,例如:"C:\ProgramFiles\Java\jdk1.
8.
0_66\",点击按钮.
图3设置Java环境变量:Java安装路径#编辑系统变量"Path",在"变量值"的最前面加上:"%JAVA_HOME%\bin;",点击按钮.
5图4编辑系统变量#新建系统变量"CLASSPATH",变量值为"%JAVA_HOME%\lib",使Java自动从目录中发现jar文件类.
图5设置Java环境变量:设置jar文件类路径65.
1.
3准备JMeter测试工具步骤1下载和安装JMeter测试工具.
#登录ApacheJMeter官网,下载JMeter测试工具,本文档使用JMeter2.
13版本,下载地址为:http://jmeter.
apache.
org/download_jmeter.
cgi#将下载后的JMeter压缩包拷贝到虚拟机操作系统内,并解压缩到任意磁盘路径下,例如:"C:\jmeter\".
5.
1.
4准备Web服务器JMeter的加压对象是一个Web服务器,本文档使用Tomcat构建Web服务器.
步骤1安装Tomcat服务.
#登录ApacheTomcat官网,下载Tomcat软件,本文档使用Tomcat8.
0.
29版本,下载地址为:http://tomcat.
apache.
org/download-80.
cgi#将下载后的Tomcat压缩包拷贝到虚拟机操作系统内,并解压缩到任意磁盘路径下,例如:"C:\tomcat\".
步骤2设置Tomcat服务环境变量.
#在虚拟机操作系统内,鼠标依次点击"我的电脑"->"属性"->"高级"->"环境变量".
#在"系统变量"属性框中,点击按钮,在弹出的"新建系统变量"对话框中,输入"变量名"为"CATALINA_HOME","变量值"为Tomcat安装路径,例如:"C:\tomcat\apache-tomcat-8.
0.
29",点击按钮.
图6设置Tomcat环境变量:Tomcat安装路径7#编辑系统变量"Path",添加变量值:"%CATALINA_HOME%\lib;%CATALINA_HOME%\bin;",点击按钮.
图7编辑系统变量#在"资源管理器"中,定位到目录"C:\tomcat\apache-tomcat-8.
0.
29\bin\"目录,右键单击"startup.
bat"文件,选择"以管理员身份运行(A)".
图8启动Tomcat服务8#当弹出的命令行窗口显示如下图所示时,表示Tomcat服务已经正常启动.
图9Tomcat服务后台执行日志#服务安装成功之后,使用浏览器访问"http://localhost:8080/"可以看到Tomcat的欢迎界面.
图10安装成功之后的TomcatWeb服务5.
2配置性能加压工具步骤1启动JMeter测试工具9#进入JMeter所在的文件路径,例如:"C:\jmeter\apache-jmeter-2.
13\",在"bin"目录下找到"jmeter.
bat"文件,点击鼠标右键,选择"以管理员身份运行(A)".
图11运行JMeter工具步骤2建立线程组.
#在JMeterGUI界面上,右键单击"测试计划",依次选择"添加"->"Threads(Users)"->"线程组".
图12建立线程组10#配置线程属性,设置"线程数"为10000,表示并发请求用户数为1万,"Ramp-UpPeriod(inseconds)"为60,表示1万个用户在60秒内完成并发请求,平均1秒完成167个用户的并发请求,"循环次数"设置为1.
图13设置线程组步骤3设置HTTP请求.
#右键单击"线程组",依次选择"添加"->"Sampler"->"HTTP请求".
图14设置HTTP请求#分别设置"Web服务器"属性框的"服务器名称或IP"和"端口号"为"localhost"和"8080",表示对本机Tomcat服务首界面链接进行压力访问.
11图15设置HTTP请求步骤4设置输出报告类型.
#右键单击"HTTP请求",依次选择"添加"->"监听器"->"AggregateGraph",表示测试结果以聚合报告的形式输出.
图16设置性能输出报告类型125.
3测试不同并发用户时的性能5.
3.
110000并发用户步骤1启动压力测试.
#因为在"配置性能加压工具"一节中,我们已经设置了线程数为"10000",因此,直接在JMeterGUI主界面中工具栏中点击""图标,即可开始并发10000用户的压力测试.
步骤2观察与记录测试结果.
#加压结束之后,在JMeterGUI聚合报告视图中,可以看到此次加压测试的统计结果.
图1710000用户并发访问的测试结果指标项含义#Samples测试过程中发出的请求数,如果模拟10000个用户,每个用户迭代1次,此处就显示10000.
Average(值越小越好)平均响应时间.
默认情况下是单个Request的平均响应时间,当使用了TransactionController时,则是以Transaction为单位显示平均响应时间.
Median(值越小越好)中位数,即50%用户的请求响应时间.
90%Line(值越小越好)90%用户的请求响应时间.
95%Line(值越小越好)95%用户的请求响应时间.
99%Line(值越小越好)99%用户的请求响应时间.
13Min(值越小越好)最小响应时间.
Max(值越小越好)最大响应时间Error%(值越小越好)此次测试中出现错误的请求的数量与请求总量的比例.
Throughput(值越大越好)吞吐量.
默认情况下表示每秒完成的请求数,当使用了TransactionController时,则表示类似LoadRunner的TransactionperSecond.
KB/Sec(值越大越好)每秒从服务器端接收到的数据量,相当于LoadRunner的Throughput/Sec.
步骤3对比加压前后虚拟机的CPU与内存利用率.
CPU(%)内存(%)加压前0.
5%8%加压后50%~80%25%~30%5.
3.
220000并发用户步骤1配置线程属性.
#在JMeterGUI界面上修改线程属性,设置"线程数"为20000,表示并发请求用户数为2万,"Ramp-UpPeriod(inseconds)"为200,表示2万个用户在120秒内完成并发请求,平均1秒完成167个用户的并发请求,"循环次数"设置为1.
图18并发20000用户线程属性配置步骤2观察与记录测试结果.
14#加压结束之后,在JMeterGUI聚合报告视图中,可以看到此次加压测试的统计结果.
图1920000用户并发访问的测试结果步骤3对比加压前后虚拟机的CPU与内存利用率.
CPU(%)内存(%)加压前0.
5%8%加压后50%80%5.
3.
330000并发用户步骤1配置线程属性.
#在JMeterGUI界面上修改线程属性,设置"线程数"为30000,表示并发请求用户数为3万,"Ramp-UpPeriod(inseconds)"为300,表示3万个用户在300秒内完成并发请求,平均1秒完成167个用户的并发请求,"循环次数"设置为1.
15图20并发30000用户线程属性配置步骤2观察与记录测试结果.
#加压结束之后,在JMeterGUI聚合报告视图中,可以看到此次加压测试的统计结果,从聚合报告可以看出,有大约0.
16%(约4800个用户)的HTTP请求失败.
图2130000用户并发访问的测试结果16步骤3对比加压前后虚拟机的CPU与内存利用率.
从内存占用情况看,内存峰值达到100%,要使30000个用户请求全部成功,可能需要添加虚拟机的内存.
CPU(%)内存(%)加压前0.
5%15%加压后50%左右振荡85%~100%5.
3.
450000并发用户步骤1配置线程属性.
#在JMeterGUI界面上修改线程属性,设置"线程数"为50000,表示并发请求用户数为5万,"Ramp-UpPeriod(inseconds)"为500,表示5万个用户在500秒内完成并发请求,平均1秒完成167个用户的并发请求,"循环次数"设置为1.
图22并发50000用户线程属性配置步骤2观察与记录测试结果.
#加压结束之后,在JMeterGUI聚合报告视图中,可以看到此次加压测试的统计结果,从聚合报告可以看出,有大约12.
42%(约6210个用户)的HTTP请求失败.
17图2350000用户并发访问的测试结果步骤3对比加压前后虚拟机的CPU与内存利用率.
从内存占用情况看,内存峰值达到100%,要使50000个用户请求全部成功,可能需要添加虚拟机的内存.
CPU(%)内存(%)加压前0.
5%15%加压后振荡不固定80%~100%6经验总结6.
1JMeter和Tomcat服务内存配置调整JMeter的默认内存分配量对测试结果影响较大.
默认情况下,当上万个用户同一时刻并发访问时,可能会造成JMeter服务内存溢出和TomcatWeb服务内存溢出,此时,可以通过调整JMeter和Tomcat的配置文件解决.
(1)调整JMeter配置文件用文本编辑工具打开JMeter批处理文件,文件全路径为%JMETER_HOME%\bin\jmeter.
bat,将HEAP和NEW参数调整为:remSeetheunixstartupfilefortherationaleofthefollowingparameters,remincludingsometuningrecommendationssetHEAP=-Xms1024m-Xmx8192m18setNEW=-XX:NewSize=512m-XX:MaxNewSize=4096m其中,Xms表示初始分配的堆内存;Xmx表示最大允许分配的堆内存,按需分配;NewSize表示内存不足时,分配的新的内存;MaxNewSize表示内存不足时,最大可分配的内存大小.
(2)调整Tomcat配置文件用文本编辑工具打开Tomcat批处理文件,文件全路径为%CATALINA_HOME%\bin\catalina.
bat,增加如下行:remGuessCATALINA_HOMEifnotdefinedset"CURRENT_DIR=%cd%"setJAVA_OPTS=-server-Xms1024m-Xmx8192m6.
2虚拟机内存/vCPU数量对并发性能的影响从30000用户和50000用户并发压力测试情况看,加压期间,虚拟机内存峰值到达100%.
为了验证虚拟机内存对大并发性能的影响,本文档首先在线为被测试虚拟机增加内存至16GB,对比8GB内存与16GB内存情况下的性能.
步骤1扩容虚拟机内存.
#系统管理员登录H3CCASCVM虚拟化管理平台,修改虚拟机,改变虚拟机内存容量为16GB.
图24扩容虚拟机内存19步骤2运行与8GB内存时完全相同线程配置的HTTP并发请求.
#在测试的时候,发现虚拟机CPU利用率一直为100%,而内存利用率维持在70%~80%之间,而JMeter聚合报告中已经出现了HTTP请求失败的记录,因此,怀疑CPU资源不足以满足Tomcat服务器的要求.
图25调大内存配置之后50000用户加压时的虚拟机资源利用率步骤3对比8GB内存与16GB内存时的性能.
图26虚拟机配置16GB内存时的JMeter性能报告20虚拟机配置(2vCPU,8GB内存)虚拟机配置(2vCPU,16GB内存)#Samples5000050000Average(值越小越好)40685242Median(值越小越好)2490%Line(值越小越好)118992710395%Line(值越小越好)305633509999%Line(值越小越好)5609476895Min(值越小越好)00Max(值越小越好)745243103276Error%(值越小越好)12.
42%7.
55%Throughput(值越大越好)12.
690.
6KB/Sec(值越大越好)128.
5966.
7从对比结果分析,增加虚拟机内存能够降低HTTP请求出错率,提高吞吐量和服务器端接收到请求的数据量.
步骤4扩容虚拟机vCPU.
#系统管理员登录H3CCASCVM虚拟化管理平台,修改虚拟机,改变虚拟机CPU为1路8核.
步骤5运行与16GB内存时完全相同线程配置的HTTP并发请求.
#加压期间,在H3CCASCVM虚拟化管理平台上观察虚拟机的资源占用情况,可以清楚地看到CPU利用率在10%左右震荡,内存利用率稳定时维持在50%左右.
图27调大CPU配置之后50000用户加压时的虚拟机资源利用率21图28虚拟机配置8vCPU时的JMeter性能报告从测试结果看,增加虚拟机vCPU数量对JMeter的并发访问性能提升是极其明显的,不仅没有出现一次HTTP请求失败的情况,而且,所有指标项都明显好于低配置情况下的并发性能.
虚拟机配置(2vCPU,8GB内存)虚拟机配置(2vCPU,16GB内存)虚拟机配置(8vCPU,16GB内存)#Samples500005000050000Average(值越小越好)4068524218Median(值越小越好)24290%Line(值越小越好)1189927103295%Line(值越小越好)3056335099399%Line(值越小越好)560947689545Min(值越小越好)000Max(值越小越好)7452431032763221Error%(值越小越好)12.
42%7.
55%0.
00%Throughput(值越大越好)12.
690.
692.
1KB/Sec(值越大越好)128.
5966.
71045

阿里云金秋上云季,云服务器秒杀2C2G5M年付60元起

阿里云(aliyun)在这个月又推出了一个金秋上云季活动,到9月30日前,每天两场秒杀活动,包括轻量应用服务器、云服务器、云数据库、短信包、存储包、CDN流量包等等产品,其中Aliyun轻量云服务器最低60元/年起,还可以99元续费3次!活动针对新用户和没有购买过他们的产品的老用户均可参与,每人限购1件。关于阿里云不用多说了,国内首屈一指的云服务器商家,无论建站还是学习都是相当靠谱的。活动地址:h...

CUBECLOUD:香港服务器、洛杉矶服务器、全场88折,69元/月

CUBECLOUD(魔方云)成立于2016年,亚太互联网络信息中心(APNIC)会员,全线产品均为完全自营,专业数据灾备冗余,全部产品均为SSD阵列,精品网络CN2(GIA) CU(10099VIP)接入,与当今主流云计算解决方案保持同步,为企业以及开发者用户实现灵活弹性自动化的基础设施。【夏日特促】全场产品88折优惠码:Summer_2021时间:2021年8月1日 — 2021年8月8日香港C...

香港九龙湾(27元) 2核2G 20元 香港沙田

弘速云是创建于2021年的品牌,运营该品牌的公司HOSU LIMITED(中文名称弘速科技有限公司)公司成立于2021年国内公司注册于2019年。HOSU LIMITED主要从事出售香港VPS、美国VPS、香港独立服务器、香港站群服务器等,目前在售VPS线路有CN2+BGP、CN2 GIA,该公司旗下产品均采用KVM虚拟化架构。可联系商家代安装iso系统。国庆活动 优惠码:hosu10-1产品介绍...

性能测试为你推荐
存储备份数据备份有哪些方式呢?淘宝门户淘宝网怎么样从个人中心进入首页2020双十一成绩单2020年河南全县初二期末成绩排名?杨紫别祝我生日快乐祝自己生日快乐内涵丰富的话阿丽克丝·布莱肯瑞吉阿丽克斯布莱肯瑞吉演的美国恐怖故事哪两集比肩工场大运比肩主事,运行长生地是什么意思?杰景新特我准备在网上买杰普特711RBES长笛,10700元,这价格合理吗?还有,这是纯银的吗,是国内组装的吗?同一服务器网站服务器建设:一个服务器有多个网站该如何设置?抓站工具公司网站要备份,谁知道好用的网站抓取工具,能够抓取bbs论坛的。推荐一下,先谢过了!www.36ybyb.com有什么网址有很多动漫可以看的啊?我知道的有www.hnnn.net.很多好看的!但是...都看了!我想看些别人哦!还有优酷网也不错...
北京主机租用 山东vps 已备案域名出售 域名商 便宜服务器 圣迭戈 hostloc 免费防火墙 免费美国空间 美国堪萨斯 上海联通宽带测速 太原联通测速 河南移动梦网 我的世界服务器ip 镇江高防 97rb netvigator 远程登录 symantec 游戏服务器 更多