【紧急求助】同一外表查询,通过添加be节点,耗时不稳定,越来越慢

【详述】同一查询,通过添加be节点,耗时不稳定,越来越慢
【背景】无
【业务影响】影响业务测试数据
【StarRocks版本】2.5.3
【集群规模】例如:1fe+3be
【机器信息】16U64G
【联系方式】470909347@qq.com

问题描述:

查询的SQL语句,d表和g表都是jdbc连接的外表,d和g表分别有100w数据

select d.realTimePower, d.productName, d.othersPower, g.SUPPORT_TYPE from d left join g on d.res_uuid = g.NE_RES_ID where d.__time >= ‘2023-04-03T03:00:00.000’ and d.realTimePower = 0 order by d.productName desc limit 10;

该条语句在1fe+1be、1fe+2be, 1fe+3be场景下查询耗时很不稳定

场景1fe+1be

耗时稳定在1.70S左右:

场景1fe+2be

耗时快慢交替,一次慢一次快,出现频率很稳定,快的维持在1.3s左右,慢的在20s左右,差异很大

慢和快的耗时主要集中在PendingTime这块上,类似对比:

另外慢和快的差异就是:

快的Fragment 0 1 2 都是在192.168.1.12节点上,3在192.168.1.13节点上

慢的Fragment 0 1 2 都是在192.168.1.13节点上,3在192.168.1.12节点上

1fe+3be

当添加为3个be节点,耗时都在在20s左右,be节点多了,反倒是耗时越长

所以不知道是如何选择be节点进行执行的,问题原因出在哪里,希望解答

附件:
1fe+2be快profile.txt (33.3 KB) 1fe+2be慢profile.txt (33.2 KB) 1fe+3beprofile.txt (33.4 KB) be节点信息.txt (2.7 KB) fe节点信息.txt (585 字节)

跟SCAN本身的关系看起来不太大,可能是加载驱动耗时太高

可以把驱动放在本地试一下吗

当前驱动都是放在本地的

URL 写的是不是hostname,有可能是域名解析出问题导致连接比较慢呢

都是ip访问

比较好奇的是Fragment选择不同BackendAddresses查询效果不一样,刚才3个be节点有一段时间都是很快的,现在又不行了

set pipeline_profile_level=2; 然后获取一下profile看看,我怀疑是某个BE有这个问题

1fe+3be快profile_开启2.txt (37.0 KB) 1fe+3be慢profile_开启2.txt (37.0 KB)
发现一个规律Fragment 1的执行计划不在fe节点上,好像就慢

该问题闭环,是因为机器网络导致,机器分别在不同地域导致网络传输不一样