brpc icon indicating copy to clipboard operation
brpc copied to clipboard

la 负载均衡算法中采样大小能否增加gflags调节

Open limindlmu opened this issue 2 years ago • 3 comments

Is your feature request related to a problem? (你需要的功能是否与某个问题有关?) LocalityAwareLoadBalancer中对某个节点的请求统计个数定死了128(RECV_QUEUE_SIZE). 如下面一段代码所示 这里有个疑问是为什么不能直接 _time_q(SIZE),即_time_q自己管理内存? 如果OWN_STORAGE,是否就可以直接通过gflags在构造函数中定义好_time_q的size?

 butil::BoundedQueue<TimeInfo> _time_q;
TimeInfo _time_q_items[RECV_QUEUE_SIZE];

_time_q(_time_q_items, sizeof(_time_q_items), butil::NOT_OWN_STORAGE) ;

Describe the solution you'd like (描述你期望的解决方法) 希望能够支持gflags调节 _time_q size

Describe alternatives you've considered (描述你想到的折衷方案) _time_q(SIZE)

Additional context/screenshots (更多上下文/截图)

limindlmu avatar Dec 15 '23 03:12 limindlmu

是在什么场景发现变更RECV_QUEUE_SIZE有收益吗?可以详细介绍一下么

lorinlee avatar Dec 16 '23 04:12 lorinlee

是在什么场景发现变更RECV_QUEUE_SIZE有收益吗?可以详细介绍一下么

在我们的业务场景中,耗时不是很平稳(因为有多个场景,每个场景耗时差异较大)。RECV_QUEUE_SIZE 调大些时,avg_latency的计算波动会更小,这样weight的波动也会更小,客户端打到服务端的流量会更平稳些,不会频繁上下波动。

limindlmu avatar Dec 18 '23 12:12 limindlmu

我觉得可以提个PR,现在这个128也是个经验值

Huixxi avatar Jan 28 '24 14:01 Huixxi