执行服务性能测试方案时的准备,至少需要/What should be prepared before performance action:

    1. 明确性能测试目标与测试周期 / Performance Goals/Metrics. Timeline, of course.
    2. 梳理出测试对象信息,包含内容/Informations about test objects, including as bellow
      • 生产环境网络拓扑 / Network Topology of Production
      • 生产环境相关服务器数量 / The numbers of services machines of Production
      • 生产服务器服务软、硬件基础信息 / The hardware & software informations of Production
      • 服务调用链路/关系 / The relationships inner services of invocations
      • 技术/业务上的限制 / The limitations of technology and businesses
      • 被测业务域 / The domains of businesses for test
      • 确认热点数据 / Hot datas
    3. 测试场景与方案制定 / Test Scenarios / Schemes(Strategies)
    4. 测试工具与脚本,监控工具准备 / Tools, Scripts and Monitors for test
    5. 数据构造 / Test Datas Construction
    6. 预热 / Hot datas Activation

    性能指标的内容,至少可涵盖:

    • 应用预期的吞吐量是多少
    • 请求和响应之间的延迟预期是多少
    • 应用支持多少并发用户或任务
    • 当并发用户或任务达最大时,可接受的吞吐量和延迟是多少
    • 最坏情况下的延迟是多少
    • 要使GC引入的延迟在可容忍范围内,GC的频率应该是多少

    服务端性能监控的内容,至少可涵盖:

    • 吞吐量
    • 延迟
    • 应用服务错误率
    • 运行应用的容器配置
    • 数据库的健康状态与执行情况(连接与释放)
    • CPU使用率与空闲率
    • 内存使用率
    • 内存容量
    • I/O (网络/磁盘)
    • 磁盘容量
    • 句柄数
    • GC
    • 堆栈
    • 网络带宽(如网关/正反向代理/CDN)

    • 最具挑战的是场景分析与设计
    • 最难的是性能调优,包括数据结构与算法、SQL、堆栈、锁、配置等