如何提高性能测试效率之被测环境检查

发表于:2022-10-08 09:56

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:yangjianxv    来源:TWT

分享:
  性能测试中,经常发现测试结果和预期差异很大,根据个人经验,大约50%的情况下是测试环境并没有校准到生产配置,甚至生产环境也是配置错误,导致系统性能的低下。因此,被测环境的检查是非常值得投入的一件事。前期花3个小时做检查,后期减少几天的排查和扯皮,划算!
  环境的检查包含:
  · 硬件资源配置检查
  · 操作系统检查
  · 系统软件检查
  · 应用配置检查
  · 系统资源情况检查
  · 业务检查
  这里分别简单介绍一下,各个检查环节主要检查什么,为什么他们影响性能。
  一、 硬件资源配置检查
  目的是了解清楚测试环境硬件配置和生产环境的差异,如果是虚拟化环境,需清楚的了解底层Hypervisor给操作系统提供的实际资源能力是多少。而不是虚出来的那个能力。
  CPU:Power平台上检查EC(标称计算能力)、VP(虚拟CPU个数)、SMP等参数。X86上检查保障的Hz值。
  内存资源配置:X86上格外检查保障的内存值,该值是Hypervisor一层设置。
  检查磁盘空间:预估数据量,关注磁盘空间是否满足测试数据量的要求。需要关注每个文件系统,df命令查看所有挂载的文件系统,关注增长量较大的文件系统(如:用于写日志的文件系统)是否满足测试需要。关注数据库的表空间是否支撑目标业务量。
  二、 操作系统检查
  1) 检查操作系统版本和补丁版本
  操作系统版本不同,性能自然会有差异。并且需要关注操作系统的小版本,以及打补丁的情况。小版本一般很少有人在意,因为影响较小。但在常年的性能测试中,偶尔也会遇到操作系统、系统软件的bug,有时还是自己帮厂商发现的。
  2) 操作系统参数
  一些需要注意的系统参数。
  如果这次测试关注网络情况,那么操作系统上网络相关的参数是不是就需要额外校准一下?网络相关的maxmbuf,MTU,rfc1323,tcp_nodelay,tcp_recvspace,tcp_sendspace等等。
  如果这次测试关注CPU利用率,那么操作系统上CPU相关的参数是不是就需要额外校准一下?例如关注微分区环境下的vpm_xvcpus、处理器折叠(Processor Folding)等等。
  三、 系统软件检查
  系统软件包括交易中间件、应用中间件、消息中间件、数据库、BI等等,也就是说,不是自己写的应用,而是一些通用的软件产品。检查他们的版本、运行状态和各类参数配置。
  之所以检查他们,是因为他们是系统性能体系的一部分,他们承载了应用程序。“系统软件配置不得当”占所有“环境配置不得当”至少30%,这其中数据库的参数配置对性能的影响最大,需要检查的点也最多,后续我还会专门介绍数据库的性能测试检查。
  四、 应用配置检查
  版本和各类参数,尤其是并发进程数、日志级别、检查级别、开关。
  确保测试环境的应用配置与生产一致,或者其配置是符合测试环境特点的。
  并发进程数:测试环境和生产环境的CPU资源不一样,那么测试环境的并发进程数可能不需要设置那么高,太高了反而影响系统性能(尤其是涉及到数据库资源争用的情况)。
  日志级别:是应用程序最影响性能的参数之一。较高的日志级别对处理效率是上一个数量级的影响。
  检查级别:有些应用程序设置检查级别。即应用自身判断、检查业务正确性的设置。检查级别高,则检查的项目越多、越严格。较高的检查级别对处理效率也是上一个数量级的影响。
  五、 系统资源情况检查
  这里的系统资源检查和最上面介绍的系统资源配置检查并不相同。资源配置检查是静态地看总量,而这里的系统资源利用情况检查指的是,测试之前关注CPU、网络等资源使用情况,确保没有其他占用资源的业务在运行。否则,测试结果不准确。
  1)CPU利用率的检查
  操作系统在没有大作业工作时,CPU的user和kern一般在1%左右,而idle空闲一般在97%、98%左右。如果CPU利用率明显偏大,需等这个作业完成后才能进行性能测试,如果等不到结束,kill也是一个选择。
  2)网络相关检查
  检查网络的响应时间是否可以支撑性能测试的业务量
  网络响应时间是指终端发起到源端的连接请求,到收到源端的回复所需要的时间。可用ping命令来测试网络的响应时间,Ping 命令的echo request/reply 一次往返所花费的时间即为响应时间。
  有很多因素会影响到响应时间,如网络负荷,网络主机的负荷,网络的带宽,网络设备的负荷等等。
  若是过程中出现大延迟的数据包,甚至偶尔的丢包现象,则说明该网络抖动程度较大,网络性能不佳。
  如果存在网络抖动,同样会影响系统性能。例如:
  ping xxx.xxx –t  
  Ping xxx.xxx with 32 bytes of data 
  Reply from 123.125.114.144: bytes=32 time=0ms TTL=50 
  Reply from 123.125.114.144: bytes=32 time=1ms TTL=50 
  Reply from 123.125.114.144: bytes=32 time=0ms TTL=50 
  Reply from 123.125.114.144: bytes=32 time=0ms TTL=50 
  Reply from 123.125.114.144: bytes=32 time=0ms TTL=50 
  Reply from 123.125.114.144: bytes=32 time=47ms TTL=50 
  Reply from 123.125.114.144: bytes=32 time=0ms TTL=50 
  Reply from 123.125.114.144: bytes=32 time=0ms TTL=50 
  Reply from 123.125.114.144: bytes=32 time=1ms TTL=50 
  Reply from 123.125.114.144: bytes=32 time=0ms TTL=50
  局域网中,绝大多数延时都是0-1毫秒,而中间总是掺杂着几十毫秒(47ms)的抖动。这类网络情况在高吞吐量的性能测试当中,会严重影响业务的响应时间(如果一个业务的链条比较长的话)。因为,对于最求性能极致的系统,响应时间都是以毫秒计算的,一个业务才几十毫秒,如果10个tcp网络报文中有一个遇到几十毫秒(47ms)的抖动,就会明显拉长了业务的响应时间。
  六、 业务检查
  业务检查包括业务的类型、系统日期、所处的状态、业务是否会重账。
  业务检查的目的是确保每一次的测试都可以业务处理正常,而不至于出现因为业务报错而测试作废的情况。
  以上,是被测环境的检查,磨刀不误砍柴工,大概就是这个意思。
  本文内容不用于商业目的,如涉及知识产权问题,请权利人联系51Testing小编(021-64471599-8017),我们将立即处理
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号