【详述】使用外表往starrocks本地表insert into select导入数据,发现其中一个节点的io特别高,准确来说是io的read很高,这就很费解,明明是导入任务,应该是写入高,但是表现是read在数据导入完成后,read io会持续几分钟高。观察主要是一个con_wg_scan_io线程和两个task_worker线程,可以占到100M/s以上。
有两个疑问:1、为什么导入任务会导致其中一个节点的io特别高,且是读io高
2、con_wg_scan_io和task_worker是做什么的,为什么会持续几分钟读取数据。导数完成几分钟后,线程才消失,io才降下来。可以复现,不是偶发的。
【背景】按天分区,使用外表往本地表挨个导数据,导入了几天的数据就可以复现io高。数据量每天分区6个bucket,每个bucket 300~400M数据。表的副本数2,写入quorum为ONE,集群的be节点数2个。有问题的就是其中一个节点。
【业务影响】测试环境,无影响
【是否存算分离】否。存算一体集群
【StarRocks版本】3.2.16
【集群规模】3fe(1 follower+2observer)+2be(fe与be混部),be节点内存配置为12%的物理内存(128G物理内存)
【机器信息】两个be节点配置:40C/128G/千兆/ssd,80C/128G/千兆/ssd(问题be节点)
【联系方式】社区群21-Jack
【附件】be上运行iotop,以DISK_READ排序,截图如下:
是不是分桶列没设置好,倾斜了导致压力都在一个be上
应该不是,bucket设置的6,hash分桶,2副本,2be节点,每个be节点,都有6个bucket。