目的

为何把bthread 打满?
如何避免?
具体的改进措施?

brpc是否能保证FIFO的处理?
默认的单连接不能。

brpc 在bthread 打满的情况下能否保证FIFO的处理?

brpc 在bthread 打满的情况下有哪些影响?

框架

## server端的框架图

## client端的框架图

子类

启发

性能调优的理论基础

Little’s Law
在服务处于稳定状态时: concurrency = latency * qps。 这是自适应限流的理论基础。

当服务没有超载时,随着流量的上升,latency基本稳定(接近noload_latency),qps和concurrency呈线性关系一起上升。

当流量超过服务的peak_qps时,则concurrency和latency会一起上升,而qps会稳定在peak_qps。

假如一个服务的peak_qps和noload_latency都比较稳定,那么它的best_max_concurrency = noload_latency * peak_qps。

自适应限流就是要找到服务的noload_latency和peak_qps, 并将最大并发设置为靠近两者乘积的一个值。

参考资料