前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >如何规划性能测试拓扑

如何规划性能测试拓扑

作者头像
张树臣
发布2018-05-15 15:50:51
1.3K0
发布2018-05-15 15:50:51
举报
文章被收录于专栏:软件测试经验与教训

假设通过性能测试需求分析,我们需要创建一个性能测试场景,并发500个web虚拟用户,这时我们需要考虑:

1)选用什么样软硬件配置的的机器作为测试机?

2)500个并发用户需要多少台测试机才够用?

  在性能测试执行之前,一定要把上面的问题搞清楚,主要是为了避免将来性能测试执行时瓶颈出现在客户端,客户端承载了太多的压力,而没有真正的提交到服务器上去。这种情况下,我们会看到客户端CPU利用率居高不下,响应速度十分缓慢,甚至出现宕机的情形。

实际上,针对特定的性能测试需求,建立多大规模的性能测试机群才算合理,与多个因素有关,包括:测试机的软硬件配置、测试机的数量、脚本的复杂程度、网络的情况等。

客户端CPU估算

  还是以web虚拟用户为例,如果选择windows XP 1 CPU,1GB内存标准配置作为测试机,那么每50虚拟用户占用CPU约为2.2%。因此,在理想状态下,总共在本机可最大并发的虚拟用户为:

    Total Vusers=100/2.2*50=2272(个虚拟用户)

  结合实际情况考虑,操作系统本身,LR等后台进程的运行也要占用20%左右的CPU资源,再加上80%的瓶颈系数,实际情况下,在保证不出现CPU瓶颈的前提下,windows XP 1CPU 1GB内存标准配置的最大CPU瓶颈虚拟用户为:

Total Vusers=100/2.2*50*80%*80%=1454(个虚拟用户)

客户端网络瓶颈估算

  网络瓶颈是一个重要但又经常被忽视的瓶颈因素。在负载测试执行时,必然会引起大量的网络流量,那么在当前的网络情况下,能否顺利的运载这些数据到达服务器呢?这需要在性能测试开始之前,进行一个网络瓶颈评估。

  假设,当前的网络环境为100MB局域网,实际上100MB的计算单位为bit,转化成我们常用的Byte,应该是100/8=12.5M Byte。

  一般,网络的瓶颈安全系数为80%,那么实际上LR可用的瓶颈宽带为:

Available bandwidth = 12.5 * 80% =10M Bytes

  当前局域网内本机可并发的最大用户数为 LR可用宽带(10MB)/ 单个用户宽带(单个虚拟用户的占用宽带可以借助抓包工具分析)

客户端内存瓶颈估算

  在windows XP标准配置环境下,每50web虚拟用户以进程模式运行所需内存为4.6MB,以线程模式运行所需内存为0.82MB。因此,理想情况下,1GB内存进程运行最大并发为1000/4.6*50=10869,以线程模式最大并发为1000/0.82*50=60975。

  在实际情况下,还要考虑其他使用内存的因素,如操作系统和相关后台进程,虚拟内存触发条件,VU脚本本身应用创建buffer所需内存。

  由于LR运行在操作系统上,操作系统内存也随着压力的发起而增大,当内存增大到一定程度的时候,虚拟内存就会被创建,这时就会进一步提高CPU的占用率和IO吞吐量,实际上形成客户端的瓶颈。因此,做如下假设:

  1、LR运行时,操作系统占用内存25%。

  2、在物理内存使用率到达85%时,将会创建虚拟内存(可以查看windows和linux相关swap参数设置)。

  3、虚拟用户主要是处理和发送数据,一个脚本所使用的内存可以用它发送出去的网络数据大小来替代。

 总共虚拟用户可用内存 Total available Memory=1000*(100-25%)*85%=638MB

  每个虚拟用户占用内存 Vuser Memory=lr Vuser 执行内存+ Vuser脚本使用内存

  Vuser脚本使用内存可以使用网络流量来估算,比如抓包获取的流量为115KB,那么脚本为执行此操作,至少要在内存上开辟出115KB的数据buffer。

  因为,单个虚拟用户运行所需内存为:Vuser Memory=0.82+115=116KB

  而在1G内存下,能够支持最大瓶颈并发用户数为:

  Total Vusers=Total available Memory/Vuser Memory=638MB/116KB=5500个。

总评估

  通过以上计算,我们能清楚的看到,在windows XP 测试机标准配置下,

  1、CPU瓶颈最大虚拟用户并发数为1454

2、网路瓶颈最大虚拟用户并发数为416

  3、内存瓶颈最大虚拟用户并发数为5500

  根据瓶颈取短原则,实际上当前测试的瓶颈虚拟用户数为416个。

  同时,我们还可以从评估分析种得到以下结论:

  1、如果想做到500并发,应对当前网络环境进行升级。

  2、web脚本不宜过长,否则数据buffer迟迟得不到释放,会导致本虚拟用户的内存使用过高,可能引起本机内存瓶颈。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2017-02-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 软件测试经验与教训 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云服务器
云服务器(Cloud Virtual Machine,CVM)提供安全可靠的弹性计算服务。 您可以实时扩展或缩减计算资源,适应变化的业务需求,并只需按实际使用的资源计费。使用 CVM 可以极大降低您的软硬件采购成本,简化 IT 运维工作。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档