zoukankan      html  css  js  c++  java
  • 提高性能测试结果的可信程度

    前言

    为了给出准确的性能测试结论,必须依靠准确的性能测试数据。有很多因素都会对性能测试产生影响,进而导致性能结果的不准确。为了提高性能数据的可信程度,测试过程中应尽量避免这些因素。

    影响评估测试结果可信度的因素

    测试环境

    硬件环境

    主要指我们的测试机的配置,应该和线上机器采用相同配置。除了cpu,内存大小要一致外,硬盘的大小、swap等也要一致。如果有大量io的话,work分区的硬盘剩余空间也会影响性能。因为如果剩余空间不一致,会造成磁头开始写硬盘时的位置不一样,那么靠内圈的性能会差。同时,频繁的拷贝删除会造成磁盘碎片,也会影响性能。

    软件环境

    在启动被测程序时,还要清楚线上有哪些程序是同时启动的,需要在测试时也一并起起来。保证资源配比的真实性。
    测试机的一些软件配置也要和线上相同,比如内核版本,系统参数等等。

    测试时间

    程序从启动到稳定服务都需要一定的时间,各模块长短不同。那么在监控数据时,如果在服务还没达到稳定时就取数据,会不准确。同样,如果在服务达到稳定很久后取数据,不会造成数据的不准确,但是会造成测试时间太长而影响效率。

    测试规模

    有些模块在线上服务时,要连接多个下游进行调度。这样的模块,因为在测试时不能完全模拟线上的情况,就存在测试规模的模拟问题。此时需要和rd确认规模,尽可能的靠近线上情况。

    测试方法

    测试方法决定了测试采样点的数量,而采样点的数量决定了测试结果的准确性。当采样点数量较少时,测试结果的偶然性会较大,测试结果的可信度不高;当采样点数量足够多时,评估测试结果的可信度较高。

    统计方法

    采用如何的监控方式:插桩还是采样。插桩方式会占用系统资源;采样方式会漏掉峰值点。采用linux自带的监控方式时,也会有数据统计方式和资源占用的问题。

    提高评估测试结果可信度的建议

    综上所述,多方面的因素都能够不同程度地影响测试结果的可信度,尤其是在多方面因素影响效果累加时,更有可能大幅度降低测试结果的可信度。如果充分考虑影响测试结果的各项因素,采取有效措施来控制测试过程中的不规范行为,制订完善的测试方案并严格执行,那么将有助于提高测试结果的可信度。

    根据前面对影响测试结果可信度因素的分析,从以下几个方面提出提高测试结果可信度的建议:

    做好充足的准备工作,保证统一的测试条件

    测试结果通常是通过对比的方法来得出结论的。要得到准确的比较结果,就要求进行比较的测试指标是在相同的前提条件下测量到的,即要求在进行测试前必须满足以下要求:

    1.采用相同测试机器
    2.采用相同的测试方法
    3.取监控数据的时间段一致
    4.采用相同命令和方式进行监控

    采样点的选择

    采用灵活,占用系统资源小的监控方式。推荐linux自带的监控命令,细节可见数据监控小组的结论。

    改进统计分析方法

    算术平均的统计方法并不适合所有的情况。针对模块特点可以采用基于时间点的,或者基于峰值的,或者基于变化拐点的一些统计方法。
    监控和统计的方法最好在开始测试前和rd进行确认。

  • 相关阅读:
    C++ Toolkit zz
    开发人员实际在用哪些工具 zz
    Page.RegisterClientScriptBlock和Page.RegisterStartupScript有何区别?
    动态网址与静态网址
    DIV垂直居中 (转)
    JS网页打印设置技巧(
    谈*静态页*(或网页*静态化*)的时候,请区分一些概念(转)
    添加新增 删除旧的 避免id自增过多
    浅谈CSRF攻击方式(转)
    简单的角色权限管理
  • 原文地址:https://www.cnblogs.com/argb/p/3448655.html
Copyright © 2011-2022 走看看