04 web前端性能优化

4.1 全链路压测
1)概念:
基于实际的生产场景、系统环境、模拟海量的用户请求和数据对整个业务链进行压力测试,并持续调优的过程
2)解决的问题:
针对业务场景越发复杂、海量数据冲击下整个业务系统链的可用性、服务能力的瓶颈,让技术更好的服务业务,创造更多的价值
3)全链路压测流程

4.2 性能测试实战
4.2.1 Why:性能测试目标
性能评估:没有确切的需求:对于系统性能没有底
性能验证:有确切需求:满足客户需求
缺陷发现:发现功能测试发现不了的缺陷:提升质量
核心指标:系统容量:静态用户量、在线用户量、并发用户量
处理速度:每秒请求数
响应时间:最小、最大、平均响应时间
资源使用率:CPU/内存/网络/IO
4.2.2 Where:项目与测试环境
项目环境搭建:阿里ECS服务器
Centos7.X
MySQL
Nginx
JVM
Tomcat
Java War包部署
压测工具搭建:Windows
JVM
Jmeter
监控平台搭建:Prometheus
Node_exporter
Grafana
真实环境模拟:网络时延注入:交换机端口延时设置、OS层面网口延时设置
数据库存量用户导入:数据文件导入、SQL存储过程、现场数据导入
思考时间设置:消息间插入思考时间、web系统通常为3-5S
监控工具开销剔除:top命令查看资源开销
4.2.3 What:性能测试范围:访问首页、登录功能、购买功能、订单查询、、、、
4.2.4 When:性能测试时机:基本功能就绪,即可立即开展
系统发生较大变更,开展基准对照
性能Bug修复,回归测试
4.2.5 Who:性能测试责任人:性能测试工程师牵头、业务领域同事、开发同事、IT人员
4.2.6 How:如何开展:提取性能场景:高并发登录、高并发查询、秒杀
Jmeter脚本开发:查阅接口文档、抓包构建接口消息、录制脚本
监控与指标获取:OS(CPU/内存/网络/IO--OS优化)、中间件(MySQL--慢查询、Nginx--负载均衡、Tomcat--连接池、JVM--JVM GC)
压测与调优:JVM调优、MySQL调优、中间件Tomcat优化、其他优化
4.2.7 Case:测试设计
30分钟单场景100%负载性能测试
30分钟复合场景100%负载性能测试
12小时核心业务100%负载测试
12小时综合场景100%负载测试
单场景100%负载主备机切换测试
极限压力测试,验证系统出错处理机制
100%负载综合场景下,定时作业运行
系统静态用户数据容量测试,评估系统支持的最大用户量
系统同时在线用户量测试,评估系统支持最大在线用户量
100%负载下综合场景,集群负载分配测试
100%负载下综合场景,单个节点掉线,N-1个节点负载分配测试
ifconfig -s查看RX-DRP\TX-DRP值判断网络丢包

浙公网安备 33010602011771号