1 背景
  随着业的快速成长,日访问量越来越高,除了对功能要求很高以外,对性能要求也越来越高。 在实际工作中,我们往往会被一些问题所困扰。
  1)线上服务容量是多少?性能痛点在哪里? 可伸缩性(resilience)和可靠性(reliability)怎样?预先知道了系统的容量,做到心中有数,才能为终规划整个运行环境的配置提供有利的依据。
  2)新开发的功能是否满足性能指标? 重新修改的代码会不会带来性能问题? 对服务或工具的参数修改是否有效果(如jvm参数,mysql或solr配置等)? 如果在上线用前能进行验证,那么不仅能极大降低部署时发生意外的概率,还能为性能优化提供指导。
  2 现状
  为尝试解决上述问题,我们在多个项目上进行过性能测试,使用过的方法主要分成三类。

  3 存在的不足
  尽管我们在性能测试上做过一些尝试,但还远远不够,存在以下不足。
  3.1 性能测试指标和标准尚未完全确立
  不同服务测试指标应该不同,相应的标准也不同,例如接入层服务和后端服务指标是不同的。如果我们能为各个服务制定类似如下的标准,以后再进行性能测试有了参考依据。 随着服务的发展,这些标准也会随之相应改动,要求会越来越严格。

  3.2 性能测试不够全面

  图1 淘宝性能测试曲线(a点:性能期望值;b点:高于期望,系统资源处于临界点;c点:高于期望,拐点;d点:超过负载,系统崩溃)