常规性能测试活动

性能测试,一方面是通过测试确认软件是否满足产品的性能需求,另一方面是发现系统中存在的性能瓶颈,起到优化系统的目的。
版本的常规性能测试活动主要包括升级前后性能对比、升级后稳定性测试两方面。

升级前后性能对比

升级前后性能对比是为了验证本次版本升级是否会引起系统性能下降。

前提条件:

  • 升级前后组网相同。
  • 升级前后各节点以及客户端均部署在同一服务器上。
  • 各服务器上的节点、客户端独占资源(每个节点、客户端部署在不同服务器上,服务器上无其他应用抢占资源)。
  • 升级前后各节点及客户端的配置保持一致(如节点加密类型、数据存储DB类型等)。

测试方法:

升级前后的性能压测均在重启组网内所有节点后进行,不要求按照当前系统支撑的最大性能压测,升级前后采用相同的测试场景、相同QPS、相同用户量、相同交易总量来压测即可。压测完成后对比系统资源使用率(CPU、内存、IO等)、业务性能指标(平均时延、TPS等)在升级前后是否存在明显差异。

测试场景覆盖如下(若使用Mysql数据库,Mysql数据库跟节点部署在不同服务器上,避免互相影响):

  • 非国密节点+RocksDB+solidity合约
  • 非国密节点+RocksDB+precompile合约
  • 非国密节点+Mysql+solidity合约
  • 非国密节点+Mysql+precompile合约
  • 国密节点+国密ssl+RocksDB+solidity合约
  • 国密节点+国密ssl+RocksDB+precompile合约
  • 国密节点+国密ssl+Mysql+solidity合约
  • 国密节点+国密ssl+Mysql+precompile合约
  • 国密节点+非国密ssl+RocksDB+solidity合约
  • 国密节点+非国密ssl+RocksDB+precompile合约
  • 国密节点+非国密ssl+Mysql+solidity合约
  • 国密节点+非国密ssl+Mysql+precompile合约

升级后稳定性测试

只有长期的用户场景测试才能一定程度上反应软件的稳定性。

定义

稳定性测试指在不重启节点的前提下,通过给系统加载一定的业务压力,让系统持续运行一段时间(常规版本测试活动中一般要求7*24小时,若测试周期长,也可以压测更长时间),观察整个过程中TPS和平均时延是否稳定,CPU、内存、IO等资源使用率是否平稳,不存在泄漏溢出等问题,检查系统是否能稳定运行。

场景

稳定性测试的输入QPS一般是系统能稳定支撑的最大TPS。稳定性测试时,各节点和客户端独占服务器资源,若使用Mysql数据库,Mysql数据库跟节点需要部署在不同服务器,避免相互干扰。

测试场景主要覆盖国密节点、非国密节点:

  • 非国密节点+RocksDB+solidity合约
  • 国密节点+国密ssl+Mysql+precompile合约