都在谈论高并发,但是高并发系统的指标有哪些呢?
- QPS,TPS可以表明系统的吞吐;
- TP90可以表明系统的响应时间;
吞吐量重要参数:QPS(TPS),并发数,响应时间
- QPS(TPS):每秒request/事务 数量
- 并发数:系统同时处理的request/事务数量
- 响应时间:一般取平均响应时间
QPS(TPS)= 并发数 / 平均响应时间
并发数 = QPS * 平均响应时间
TP50 TP90 TP99
- TP50:一段时间内(比如取5分钟),统计某方法每次调用所消耗的时间,并将这些时间按照从小到大进行排序,取第50%的值作为TP50值,就是满足百分之50的网络请求所需要的最低消耗。
比如:
有四次请求耗时分别为:2ms,10ms,100ms,1000ms
private static int tp(List<Integer> times, int percent) {
float percentF = (float)percent/100;
int index = (int)(percentF * times.size() - 1);
Collections.sort(times);
return times.get(index);
}
0.99 * 3 = 2.97 取整为3 第三个值为100ms
之后我们可以设置这个指标作为监控阈值,保证方法调用消耗时间少于这个值,如果超过此值,则报警。
TP90,TP99,TP999计算方法相同,代表了不同的性能要求,TP50相对较低,TP90则较高,TP99则要求很高