背景说明
由于服务器的实际资源小于starRocks官方的配置,导致starRocks在无任务的情况下,常驻内存偏高,可用于查询的资源变小。
官方文档
实际部署的集群一般是4C8G和8C16G,be的配置不达标
为了解决单次查询内存不足的问题,提升系统稳定性。放弃starRocks默认开启的通过内存换时间的优化逻辑,降低内存使用。
注意事项
部分参数无法在conf文件中配置,需要执行SQL语句,进行set操作。
参数调整
query_mem_limit
感觉是starRocks的BUG,默认是不配置的,就是不限制。但一段时间后会触发BUG,变成2G的效果,只能手动配置来解决。
Limit:2147483648,刚好是2GB。
SET GLOBAL query_mem_limit = 13743895347;
--具体数值需要根据实际资源确认,大约是服务器的80%
enable_persistent_index
disable_storage_page_cache
管理内存 | StarRocks
chunk_reserved_bytes_limit
其参数修改在【metadata常驻优化】中 chunk_reserved_bytes_limit=100000000
管理内存 | StarRocks
metadata常驻优化
降低到常驻进程中metadata的占比
在be.conf中加上
disable_column_pool=true
chunk_reserved_bytes_limit=100000000
data_page_size=524288
中间表落盘
中间结果落盘 | StarRocks
【默认】Data Cache
speedo系统默认是false,未开启
starlet_use_star_cache = false
Data Cache | StarRocks
【默认】Query Cache
speedo系统默认是false,未开启
Query Cache | StarRocks
内存分析方法
管理内存 | StarRocks