CPU 全都打满了嘛?如果没有,可以试着调整一下 subExecutor 的大小?
配置: wokersNum=64 subExecutors=32 maxMemSize=256 localExecutors=63
单进程部署下的流式处理:
subscribetable filter 使用哈希过滤,bucket 设置为 32 (使用一半配置测试),license 有64个核;
从 getStreamingStat() 来看,pubTables 表的 msgOffset 增长速度比 bucket = 8 的时候慢太多了;而且从 subWorkers 来看,数据分发速度完全跟不上数据处理速度;
是否如果流数据引擎计算很简单,都会卡在数据分发上?
有没有办法可以提升数据分发的速度?
补充说明:
附件视频是我这里运行的实际情况,从 cpu 的使用可以看到,它总是一瞬间的使用率很高,达到多线程的峰值;然后需要等待所有线程(sub) 都处理完成后 (cpu 降到 1%不到),才进行下一次的数据分发;
对于盘后处理来说,这是严重的效率浪费;而且从 getStreamingStat() subWorkers 来看,大多 queueDepth 经常为 0 ;