性能面试题:如何找到并发数、平均响应时间、tps的最佳平衡点?

发表于:2019-10-14 18:48

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

 作者:全栈测试笔记    来源:全栈测试笔记

  面试的机会是有限的,所以,我经常提醒微信或者Q群里的小伙伴:你可以任性的裸辞,但是不能毫无准备的裸面。
  我有个习惯,会把曾经面试过的公司及笔试、面试题都记录到云笔记上,把答案写上,方便以后换工作复习。
  最近在整理自己多年积累的笔记,平时问性能面试的也不少,本篇就分享一个N年前遇到的性能面试题,很基础,也挺简单,所以,高手请绕过。
  当时,面试官问我:如何找到并发数、平均响应时间、tps的最佳平衡点?
  初次听到这个,是不是一脸懵逼?
  先回顾下基础,性能测试常用的指标有三个:并发、响应时间、tps
  并发:跑道里参加赛跑的人数(这里的并发是广义的并发,即同一个时间段内对系统发起的请求数量)
  响应时间:也就是平均每个事务的处理时间
  tps:每秒处理的事务数
  需求指标:分为单指标和多指标
  单指标:一般是单测试tps,或者根据并发测试响应时间,或者根据响应时间测试并发,只考虑单指标的很少
  多指标:要同时考虑多个指标,比如tps + 响应时间(<1s)
  这个题,意思就是要找到这三个指标同时最佳值的点,即:不能只追求并发数大,而忽略tps,所以,这是一个多指标性能需求,假设是这样的:要求响应时间1秒以内,并发数要尽可能的多,tps要尽可能的大。
  是不是依旧有点懵逼?先画一个简单的示意图,方便大家理解(随手画的,大家能理解就ok):
  随着并发数增加,响应时间肯定是越来越高,所以,上面红线是响应时间;
  随着并发数增加,tps是先升高到峰值,然后下降(也可能是一直平稳,或者平稳一段时间再下降),所以,上面蓝线是tps;
  紫色表示并发用户数;
  该怎么去找这个最佳平衡点呢?
  1.尽可能多的做不同并发数下的压测,记录下响应时间(1s以内)和最大tps,当然,服务器端,各个服务器的资源利用率在可接受范围内(每个公司不一样,我们是90%以内);
  2.然后根据获取到的不同并发下的指标数据(并发数、tps、响应时间),画出上图,关注右侧的交点,即tps下降的地方和响应时间的交点,这个点的tps最大,如果响应时间在1s以内,此时并发数也是比较大的,这个点就可以认为是三个指标都不错的平衡点(当然,我这里把tps放在第一位优先考虑了,这个就看大家最在乎哪个指标了,排个优先级);如果响应时间大于1s,最佳平衡点就往左找,找到响应时间为1秒的点,此时对应的tps和并发值,就是最佳平衡点。总之,测试采样越多,获取的平衡点就越准确。
  另外,如果是用loadrunner作为并发工具,并发过程中是可以增加或者减少并发用户数的,就不用必须压完一次,再调整并发数继续压,但是,loadrunner并发过程中调整了并发数,还是要尽可能跑久一点,比如10-15min。

      本文内容不用于商业目的,如涉及知识产权问题,请权利人联系博为峰小编(021-64471599-8017),我们将立即处理
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

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

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

沪ICP备05003035号

沪公网安备 31010102002173号