执行服务性能测试方案时的准备,至少需要/What should be prepared before performance action:
- 明确性能测试目标与测试周期 / Performance Goals/Metrics. Timeline, of course.
- 梳理出测试对象信息,包含内容/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
- 测试场景与方案制定 / Test Scenarios / Schemes(Strategies)
- 测试工具与脚本,监控工具准备 / Tools, Scripts and Monitors for test
- 数据构造 / Test Datas Construction
- 预热 / Hot datas Activation
性能指标的内容,至少可涵盖:
- 应用预期的吞吐量是多少
- 请求和响应之间的延迟预期是多少
- 应用支持多少并发用户或任务
- 当并发用户或任务达最大时,可接受的吞吐量和延迟是多少
- 最坏情况下的延迟是多少
- 要使GC引入的延迟在可容忍范围内,GC的频率应该是多少
服务端性能监控的内容,至少可涵盖:
- 吞吐量
- 延迟
- 应用服务错误率
- 运行应用的容器配置
- 数据库的健康状态与执行情况(连接与释放)
- CPU使用率与空闲率
- 内存使用率
- 内存容量
- I/O (网络/磁盘)
- 磁盘容量
- 句柄数
- GC
- 堆栈
- 网络带宽(如网关/正反向代理/CDN)
- 最具挑战的是场景分析与设计
- 最难的是性能调优,包括数据结构与算法、SQL、堆栈、锁、配置等