高性能思考:
并发数
响应时间
数据量
交易量
性能关注点:
交易业务:QPS TPS 响应延时 出错率
流业务: 吞吐量 处理窗口 滞后时间
系统:CPU 内存 存储 网络
高性能流程:
容量规划:
目标设定:业务指标 (UV PV 交易量)、系统目标(cpu 内存 网络 磁盘)、应用目标(TPS QPS Session 并发数)
规划方法:容量评估方法(基线、水位)
实战:压测、监控和预测
性能测试-负载测试:
测试目标:正常运行压力下的响应时间、资源利用率、稳定性
测试手段:标准(历史基准),环境(QA、准生产、生产),定义(测试案例)、执行(自动化),分析(统计),报告(录入),
迭代(反复)
测试核心思想:测试是个长期的过程
压力测试:
测试目标:发现系统的拐点(失效点)、远高于正常负载
测试手段:目标、关键服务(关键业务、负载测试瓶颈)、负载(大量测试数据)、环境(减少差异),监视,执行、分析(录入)
测试核心思想:关注拐点-服务行为、响应时间、CPU内存磁盘利用率,线程、SQL、交易失败率
APM监控:性能监控:时序数据、维度聚合、性能指标、报告报警
链路监控:traceID SpanId DyeID 出错归因 延时瓶颈
业务追踪:业务、应用 系统关联 告警去重
弹性扩缩容:
APM监控、扩缩容决策引擎 auto scale策略 、资源管理(虚拟机 容器 网络负载 Serverless)
高性能实现方案:缓存为王
写缓存:网络缓存、应用缓存、对象缓存
cache-control 网页缓存
Edge边缘缓存 (CDN内容分发网络)
静态文件缓存 反向代理
对象缓存 redis
高性能实现方案:异步为帅
减少等待:磁盘,SQL、API、URL
Y轴扩展:微服务解耦 Y轴扩展更随意
削峰填谷:泊松分布、银行队列
高性能实现方案:分布式为将
x轴扩展:吞吐能力和QPS明显提升
y轴扩展:出错率明显降低
z轴扩展:延时降低、TPS/QPS明显提升
如果三中方式还是无法满足:排队系统 牺牲用户的体验达到系统的稳定
内部限流:令牌桶,漏桶。
弃车保帅:当访问量非常非常大的时候,把辅助业务干掉,保证主业务的稳定。
防刷减压:使用这种方式进行防刷减压