目的
为何把bthread 打满?
如何避免?
具体的改进措施?
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, 并将最大并发设置为靠近两者乘积的一个值。