=Start=
缘由:
之前做的一个项目上线有一段时间了,但一直也没有来得及做统计分析(峰值、平均QPS、……)。最近刚好又被问到了这个事情,所以抽空学习了解一下部分监控指标的概念和含义,方便后续自己做统计分析。
正文:
参考解答:
概念:
TP=Top Percentile,Top百分数,是一个统计学里的术语,与平均数、中位数都是一类。
应用:
TP50、TP90和TP99等指标常用于系统性能监控场景,指高于50%、90%、99%等百分线的情况。
计算/统计方法:
TP50:指在一个时间段内(如5分钟),统计该方法每次调用所消耗的时间,并将这些时间按从小到大的顺序进行排序,取第50%的那个值作为TP50的值;配置此监控指标对应的报警阀值后,需要保证在这个时间段内该方法所有调用的消耗时间至少有50%的值要小于此阀值,否则系统将会报警。
TP90,TP99,TP999与TP50值计算方式一致,它们分别代表着对方法的不同性能要求,TP50相对较低,TP90则比较高,TP99,TP999则对方法性能要求很高。
举例:假设现在有4次请求耗时分别为:
10s
1000s
100s
2s
计算TP百分线的方法就是:
1、先按升序排列 [2s, 10s, 100s, 1000s];
2、找到你需要用做统计的最后一个条目(向高取整)对应的数值,比如:TP50就是第 ceil(4*0.5)=2 个,即 10s ;TP90就是第 ceil(4*0.9)=4 个,即 1000s 。
为什么用百分位数而不是平均数?
待添加
参考链接:
- tp90和tp99是指什么性能指标
- What do we mean by “top percentile” or TP based latency?
- 监控TP50 TP90 TP99说明
- 为什么这种指标比平均数和中位数好
- 第95个百分位(95th percentile)是什么概念?
=END=
《 “为什么性能监控指标用tp50/90/99等百分位数而非平均数” 》 有 6 条评论
服务性能监控:USE方法(The USE Method)
https://blog.alswl.com/2017/11/use-method/
http://www.brendangregg.com/usemethod.html
http://www.brendangregg.com/USEmethod/use-rosetta.html
`
USE 分别是三个单词的首字母缩写:
Utilization:使用率,CPU running percent,硬盘的 IO
Saturation:饱和度,一般偏存储型资源,内存使用,硬盘使用
Error:错误数
我们可以为每个资源找到各自的 USE 度量指标,具体的 Check List 清单可以参考 USE Method: Rosetta Stone of Performance Checklists。
`
务虚:建立团队的性能文化
https://www.cnblogs.com/imyalost/p/9649685.html
`
首先来看看团队中不同角色,他们对性能的关注点都是什么?然后拆分开,从不同视角聊聊如何针对性的建立团队的性能文化。。。
不同视角的性能关注点:
角色视角————性能关注点
产品————用户数、使用时间、使用场景
开发————系统架构、代码设计、内存使用、通信方式
测试————系统性能表现是否满足性能需求指标:TPS/RT/CPU%/Memory%/Success%
运维————资源使用率、系统容量、扩展性、稳定性
`
对业务系统的监控 No.118
https://mp.weixin.qq.com/s/MWjjOB62QtX4uCWpKVs60A
`
cp1 : 业务系统宿主机监控
cp2 : 数据库监控
cp3 : 虚拟机或容器健康度
cp4: 业务系统基础关键参数监控
cp5: 关键公共依赖系统的监控
cp6: 关键业务接口系统性监控
cp7: 监控自动化和可视化
cp8: 异常数据监控
大概需要关注的东西:宿主机网络、磁盘IO、CPU load、Memory usage 等。
大概需要关注的东西:连接池、读/写RT(响应时间)、读/写QPS(每秒请求数)、CPU、网络IO、内存命中率、慢SQL 等。
大概需要关注的东西:HTTP RT(响应时间)、HTTP QPS(每秒请求数)、HTTP 空闲连接数。对于 Java 类系统来说还有JVM各种参数的监控,比如 各个代的gc时间、总gc次数和时间、堆内存、堆外内存、线程数 等。
大概需要关注的东西:各个关键接口的成功率、RT(响应时间)、QPS。
大概需要关注的东西:关键业务节点的关键参数。
`
你好,有点不明白, [2s, 10s, 100s, 1000s] 中 tp50 是 10s tp90是 1000s,为啥说 :从性能要求上讲,TP50相对较低,TP90则比较高,明明 1000s响应大于10s啊?应该tp90性能是更低才对吧?,谢谢!
对于Server端来说,响应时间越短越好,即这种情况下10s比1000s要好,这时Server端的性能会更好,所以对Server端的性能要求会更高。
想要4个9?本文告诉你监控告警如何做
https://mp.weixin.qq.com/s/qaNWBlDGgE2hNnu6SV4EBg
`
在完成监控指标和体系的建设后,告警如何做,成为了一大难题,再好的监控体系,闭环做不好,就无法发挥出很大的作用。因此我们给告警定义一些准则:
* 告警不要太多,否则会导致“狼来了”。
* 告警出现时,应当要具体操作某些事情,是亟待解决的。
* 告警出现时,应当要进行某些智力分析,不应该是机械行为。
* 不需要人工响应/处理的告警规则,应当直接删除。
* 告警出现时,你下意识要再观察观察的告警,要直接进行调整。
* 告警应当足够的简单,直观,不需要猜。
简单来讲就是告警要少,事件需要解决,处理要人工介入。
`