问题五:
大厂里面的全链路压测这个怎么做,线上压测怎样才不会污染到数据库,缓存和统计数据
1、解释:基于实际的生产业务场景、系统环境,模拟海量的用户请求和数据对整个业务链进行压力测试,并持续调优的过程
2、流量漏斗模型梳理:将核心业务和非核心业务进行拆分,确认流量高峰针对的是哪些业务场景和模块,整个流量转换扩容机器,根据各个业务需求进行扩容计算,才不会造成浪费
3、数据模型构建
1)生产环境完全拷贝流量,作为压测的基础数据,根据不同时间段聚合
2)数据脱敏,避免泄露用户核心信息
3)数据隔离,避免脏数据写入到mq、缓存、数据库等,影响线上用户
4、压测环境准备
全链路压测都是基于生产环境,不能影响实际的生产业务运行所以一般是夜间访问低峰期
工具:大厂基本都是自研,基于Jmeter等压测工具二次开发拓展,结合测试平台进行使用;开源的直接使用就是Jmeter、tcpcopy等工具
5、压测和数据收集包括
压测结果统计,核心就是看流量增长模型和业务性能相关指标,包括多个方面,比如带宽、RT时间、数据库慢查询、JVM GC日志,缓存命中率,结合全链路监控工具Zipkin、PinPoint进行监控。
问题六:
大厂里面的前端性能优化一般怎么做?里面的【结果导向】驱动性能优化路径。
定指标:
- 网络响应慢
- 图片加载时间长
原因:
- 用户测网络差
- 服务端性能不够:
硬:带宽、CPU、内存 软:接口性能、数据库性能
思路:
- CDN,就近原则
- 减少网络请求
1)JS、CSS合并、雪碧图 2)聚合业务接口 3) 前端静态资源缓存+后端业务结果缓存 4)按需加载 5)资源压缩:HTML/CSS/JS图片等进行压缩