lsekfe 发表于 2022-10-19 13:29:04

专家带你走进持续集成的真实世界中

3.1.4监控工具和结果分享分析
  质量特性中性能效率是性能测试的主要保障特性之一,在性能效率特性下的子特性包含时间特性、资源利用特性等。用性能测试可以验证并发性。怎么验证时间特性、资源利用特性等质量特性呢?性能测试需要以一整套测试工具作为测试实施的基础,这里包含了性能测试工具、服务器资源监控工具、JVM监控工具及MySQL监控工具等,如图3-15所示。

图3-15性能测试监控工具
部分性能测试工具已经介绍过了,这里就不再重复介绍了。在服务器资源监控工具中,推荐选择nmon,nmon是一款小巧的Linux服务器资源监控工具,部署方便且容易使用。最重要的一点是,nmon对服务器资源的影响较小,兼具测试工具需要的历史数据留痕、监控结果可导出等特性。因此,作为性能测试入门级工具,nmon是一个不错的选择(nmon的使用可以参考附录E)。
  关于JVM监控工具,推荐使用Arthas,这款工具部署方便且易学,通过它可以查看JAR包的加载链路、定位应用的热点以及监控JVM的实时运行状态。关于MySQL监控工具,推荐使用innotop。这是一款入门级的数据库性能检控工具,小巧、方便部署、容易掌握,通过innotop能够监控数据库的事务、锁状态、当前查询状态等对性能测试过程非常有用的信息。
  在性能测试过程中,并非使用性能性能测试工具运行一次测试,通过并发的方式完成一次或一段时间的访问,然后查看服务器资源指标、数据库指标都没有超过预期阈值就可结束了,这还不能算完整的性能测试。
  在性能测试过程中,选择哪一款性能测试工具或哪几款监控工具只是第一步。测试人员不仅要能够通过性能测试工具开始按照预定的业务逻辑对被测系统进行访问,还要监控服务器资源特性和数据库资源特性,当发现问题时使用JVM监控工具分析原因并找出问题,这些是性能测试的关键。所以性能测试结果分析是一个需要不断提升的技能。提升方法如下。
  如果性能测试过程中一切正常,那么在预定的并发访问下,要分析服务响应时间、服务器资源利用率是否有改善空间,从而判断系统是否过度设计了。也就是说,判断是否利用了过多的服务器资源,从而浪费了成本,这并非吹毛求疵,而是站在团队、公司的角度审视系统。
  如果系统在预定并发下并没达到性能要求,那么在查找问题时一定不要立刻添加机器,建议从压力机开始分析问题,先从压力机的资源利用率分析是否压力机自身压力过大,然后分析从压力机到被测服务入口之间的网络是不是产生性能问题的瓶颈,接着分析应用服务器,最后分析数据服务器,但是这是指在没有明显问题定位的前提下分析问题的方法。如果性能不达标问题明显指向复杂数据库查询,那么直接解决对应问题即可。
  性能测试多数时候是测试工程师工作中有难度的事情。主要原因就是性能测试相对实施次数较少,学习后很难用实际场景来训练已经掌握的技能,即使有性能测试的工作内容,也不一定可以用上那些问题分析方法。


千里 发表于 2022-10-19 18:34:17

还是常规的JMeter+nmon这些重要
页: [1]
查看完整版本: 专家带你走进持续集成的真实世界中