Closed DerrickChina closed 7 years ago
io_service_pool
主要是出于对吞吐要求比较高的场景设计,但需要注意的是io_service
的线程之间并没有请求的负载均衡,所以可能会造成线程任务调配不均,用户需要针对使用场景去斟酌。一般对吞吐要求在百万QPS以下时,使用单个io_service
即可,这样对存在长尾请求的场景最友好,延迟分布最合理io_service
的线程处理?负载不均的情况见1的说明strand是保证多个线程并发时回调会被同步执行。rpc通过代码保证了线程安全,所以没有加strand。
@zd-double 有时间的话 是不是在wiki中补充一个单io_service和多io_service的延迟CDF
请求中最好能模拟一些场景,比如存在长尾请求,链接不断的断开释放等
从v1.1.0到v1.1.1版本中,我发现把共用的ioService修改成了pool,想咨询下修改的初衷是什么?性能优化?之前公用是否要加strand才更安全
查看修改后的pool,有点疑问。现在是每次来一个请求就从pool中取一个ioservice来,然后这个ioService来处理这条链路。对于大量短链接的请求,如果短链接断链不均匀,那么最后有可能存在某个ioService上的链路多,其它少
对于boost了解不多,理解有误请指正,谢谢