Starrocks 磁盘 IO 异常busy

为了更快的定位您的问题,请提供以下信息,谢谢
【详述】starrocks 基本属于空载状态,数据导入量很小,但是,磁盘 IO 一直占用 40% 以上
【背景】starrocks 的表都是主键模型,其中 2 个千万级的表有分区,并且有 bitmap 索引,剩下的都是百万级别的没有分区没有索引。数据导入使用 kafka-connect,其中 5 个表每秒 streamload 一次,还有 8 个表 1 分钟 streamload 一次。
【业务影响】 执行insert into每隔几秒钟就写入慢
【是否存算分离】否
【StarRocks版本】例如:3.2.2
【集群规模】例如:1fe(1 follower)+3be(fe与be 独立部署)
【机器信息】CPU虚拟核/内存/网卡,例如:16C/64G/万兆
【联系方式】StarRocks社区群17-Golden
【附件】
starrocks 的 be 监控:


insert into 响应慢:

iotop截图:



目前 be 的配置如下:
default_rowset_type = beta
be_port = 29060
webserver_port = 28040
heartbeat_service_port = 29050
brpc_port = 28060
priority_networks = 192.168.101.0/24
storage_root_path = /opt/soft/SR2/storage,medium:SSD
sys_log_dir = /opt/soft/SR2/log
JAVA_HOME = /opt/soft/jdk-11.0.18
cumulative_compaction_num_threads_per_disk = 4
base_compaction_num_threads_per_disk = 2
cumulative_compaction_check_interval_seconds = 2
spill_local_storage_dir=/opt/soft/SR2/spill_local_storage

这样一条一条数据插入的场景不适合。

嗯嗯,我只是在测试数据写入,因为磁盘 IO 占用一直 50% 以上,怕影响正常的数据写入。可以帮忙看下怎么调整能让 IO 占用低一点吗?

然后还想问一下,这个 update_apply 是什么进程?我看它的写入特别大,如何能降低一些?因为我们目前写入的数据只有几 k/s,都是无效的写入 IO

是主键模型比较多吧,主键模型建议是SSD。

目前磁盘确实是 SSD 的。就是这些无效的 IO 是否有优化的参数,可以减少这些无效的 IO,或者,在每天某个时间段执行这些无效的 IO?

主键模型实时做compaction,消耗的IO会比较多。
如果不是追求唯一key和实时需求,建议用明细模型。

好吧,那能否再问一个问题,我表中创建了 bitmap 索引,会加重我集群的 IO 占用吗?如何能看我 bitmap 占用多大的磁盘?或者 因为 bitmap 产生的 io 能定位出来吗?

这个问题过几天找个时间一起看下,不太合理

你们有几块盘一个BE? 我看你们IO占用主要集中在pk_index_compact这,这里的io消耗新版本做过优化,方便的话可以升级一下最新的 3.2.4

wget “http://cdn-release.starrocks.com/StarRocks-3.2.4.tar.gz?OSSAccessKeyId=LTAI5tKZwuS2HpmksgUDMDAd&Expires=1710574545&Signature=HrCepIWno5hD4IEwpKFqd2vGsWg%3D” -O StarRocks-3.2.4.tar.gz
麻烦升级后再测试,不行咱们企业微信拉个群。

目前是 be 只用了一块磁盘。我看它 update-apply 占用也很大,想问下这个 update-apply 是什么进程?我这边这几天升级一下 3.2.4 再看看。

好的,我这边升级一下 3.2.4 之后,再看看 IO 是否会降低,如果还不行,我再麻烦你们

apply 是主键表在做一些更新相关的逻辑,好,你先升级,如果还有问题,我们拉个微信群帮你具体看看

我这边升级到 3.2.4 之后,昨天磁盘 IO 貌似稍微降低了一点点,但是今天我看又上来了。我们云上的 starrocks 是 2.3.0 的,这边用 iotop 看了一下,好像 starrocks 的 io 占用不是很厉害。


但是新集群的 3.2.x 的 starrocks 的 io 很厉害

这个是新集群的升级到 3.2.4 之后的磁盘 io 情况

这个可以安排帮忙一起看下吗?

我之前也有一次遇到io高,内存繁忙的情况。后来发现是开启了swap内存,关闭后就降了很多,官方建议关闭swap。给你参考参考

我已经把 swap 关闭了。现在是内存不繁忙,但是 io 很高,一直再频繁的 update_compaction,并且每次的 compaction 都挺大的

你能帮忙看下你们的 update_compaction大吗?用 iotop 看下,我再 2.3.0 里看到 compaction 的很小