工作思考-线上服务稳定性如何分析-3.8
01 制定SLA标准
数据准确性指标:数仓建立的监控,数仓的数据和业绩系统的数据进行比对的报警。
系统稳定性:(前端页面+后端接口响应的正确率)
前端页面异常率:
异常率=双周崩溃次数/ 双周总PV,目标:0.05%
影响比例 = 双周崩溃用户数/ 双周总UV,目标:0.3%
后端:99.99%
http返回200的除以所有的http请求。
计算公式:httpCode(2xx) / httpCode(all) * 100 %
系统性能指标:(页面渲染速度(前端资源渲染速度+后端接口响应速度))
前端页面:
页面渲染时间P75<3800ms
慢接口请求率:0.82%,渲染时间<3800ms的请求/总请求数
后端接口
pct95>500ms的需要优化,还有观察qps的情况,优先关注qps较高的接口
02 前端页面分析
名词解释:
FP (First Paint) 为首次渲染的时间点,在性能统计指标中,从用户开始访问 Web 页面的时间点到 FP 的时间点这段时间可以被视为 白屏时间,也就是说在用户访问 Web 网页的过程中,FP 时间点之前,用户看到的都是没有任何内容的白色屏幕。
FMP:首次绘制有意义内容的时间,衡量了用户看到网页的主要内容的时间,是用户体验角度的一种重要的衡量指标。
TTI:即从页面加载开始到页面处于完全可交互状态所花费的时间。
03 后端接口分析
1. 后端接口并行调用dws:
如果一个请求中多次调用第三方接口,并且它们互相之间没有依赖关系,可以通过使用线程池并行调用第三方接口。
2. 数据库查询增加索引
ALTER TABLE `table_name` ADD INDEX index_name ( `column` )
3. 对于大型的in操作在内存中执行,不要在数据库中执行
其中report_id_list数据量很大,可能有10w,tmp_report_id是否在report_id_list中的判断逻辑,可以在内存中完成,而不是在sql语句中执行。
04 质量周报
内容需要包括:
线下bug:
本周线下测试发现了多少bug?每周bug趋势图
按照不同需求分类,每个需求有多少bug?
这些bug能够通过单测发现吗?
线上bug:
本周线上问题有多少?每周bug趋势图
怎么分类?前后端bug,配置问题,第三方问题,历史问题,数据问题
能够通过以下方式召回?单测,UI自动化,接口自动化,监控报警
报警情况
报警总数
报警回复率
报警回复时长p50
05 小结
线上服务性能如何分析?
制定SLA标准
数据准确性指标
系统稳定性指标
前端页面异常率
后端服务稳定性99.99%
系统性能指标
前端页面加载时间p75
后端接口pct95
前端页面分析
统计PV,UV,
FP(首次渲染时间点)FMP(首次绘制出有意义内容的时间),TTI(从页面开始加载到最终加载完成的时间)
后端接口分析:
PCT95>=500ms
sql执行时间>=1s
后端接口如何优化?
如果一个请求中多次调用第三方接口,并且它们互相之间没有依赖关系,可以通过使用线程池并行调用第三方接口
给数据库字段加索引
对于复杂SQL可以拆分成简单SQL,将SQL执行结果在内存中进行复杂操作。
对查询结果加缓存
现在的天气很舒适,早上在上班的路上,慢慢悠悠的走着,感受着阳光和风的温度,看着熙熙攘攘的人群,觉得又宁静又喧闹,想到了金波的一首诗《雨天,我和一只白鸟相遇》
细雨描绘着叶绿花红,
一切都在倾听着宁静。
一只白色鸟像一缕亮光,
飞落在青石板路上。
它的叫声如歌,
自由而清脆;
它的步履轻快,
跳响在路上如飞。
我走来,和那只白色鸟相遇,
我和它,同时停下脚步。
对视。一分钟。
对语。静默无声。
相互没有惧怕,只有倾心,
一瞬间,就像交谈了一生。
啊,刚到公司就被通知居家隔离了,因为昨天中航确诊了一例,我室友在中航上班,我也要跟着隔离了,希望都会好起来。