流数据表的数据分发速度和什么相关?

配置: wokersNum=64 subExecutors=32 maxMemSize=256 localExecutors=63


单进程部署下的流式处理:

subscribetable filter 使用哈希过滤,bucket 设置为 32 (使用一半配置测试),license 有64个核;

从 getStreamingStat() 来看,pubTables 表的 msgOffset 增长速度比 bucket = 8 的时候慢太多了;而且从 subWorkers 来看,数据分发速度完全跟不上数据处理速度;

是否如果流数据引擎计算很简单,都会卡在数据分发上?

有没有办法可以提升数据分发的速度?


补充说明:

dolphindb.mp4

附件视频是我这里运行的实际情况,从 cpu 的使用可以看到,它总是一瞬间的使用率很高,达到多线程的峰值;然后需要等待所有线程(sub) 都处理完成后 (cpu 降到 1%不到),才进行下一次的数据分发;

对于盘后处理来说,这是严重的效率浪费;而且从 getStreamingStat() subWorkers  来看,大多 queueDepth 经常为 0 ;

请先 登录 后评论

1 个回答

Polly

attachments-2024-01-QvRPqyOw65a89cca2139f.png

CPU 全都打满了嘛?如果没有,可以试着调整一下 subExecutor 的大小?

请先 登录 后评论