1.遇到的问题
doris集群中很多本来2分钟甚至1分钟以内的任务,突然运行10分钟甚至20分钟都跑不出来。导致调度任务积压,数据延迟大。
我们查看了doris的监控指标,发现io基本长期处于打满的状态,内存使用率过高,集群的compaction score一直居高不下。
2.解决过程
①错误过程
我们查阅了很多相关资料,这种情况有可能是因为tablet过多导致的。所以我们将所有doris表重建,修改了分区和分桶,将数据量小的表取消了分区概念,只做少量分桶处理。并将原始表的数据导入进新表。结果并没有太大作用。
②最终处理
由于集群compaction score长期居高不下,而合并的条件是基于版本和数量的,在结合我们集群的模型大多是主键模型,并且任务频率是5分钟。所以我们认为这个问题是由于大量的高频率更新的主键模型导致集群长期合并不及时。
基于这个原因,我们将所有模型更改为明细模型,使用insert overwrite方式写入,问题得以解决。
3.总结
doris使用的时候非必要场景下尽量避免主键模型和聚合模型,特别是高频任务