用户需根据自身的硬件环境、业务场景进行参数的调优。
内存相关参数
s3.stream.allocator.policy
设置 AutoMQ 使用的内存分配策略,有POOLED_HEAP
和 POOLED_DIRECT
两种选择。当内存资源充足时(> 8 GiB),推荐使用 POOLED_DIRECT
,可以降低 GC 压力。
s3.wal.cache.size
控制 Log Cache 的大小,其会影响 Tail Read(追尾读、热读)时缓存数据的最大大小。s3.block.cache.size
控制 Block Cache 的大小,其会影响 Catch-up Read(追赶读、冷读)时缓存数据的最大大小。Catch-up Read 场景可适当增大该值。s3.wal.upload.threshold
控制 AutoMQ 在 Log Cache 中积攒多少数据后触发一次 S3 上传。不建议高于s3.wal.cache.size
的 1/3。
参数推荐值
当内存分配策略为POOLED_HEAP
时, s3.wal.cache.size
+ s3.block.cache.size
之和控制在 MaxHeapSize
的 1/4 左右。
当内存分配策略为 POOLED_DIRECT
时, s3.wal.cache.size
+ s3.block.cache.size
之和控制在 MaxDirectMemorySize
的 1/2 左右(当 MaxDirectMemorySize
较大时,可适当上浮)。
- | 小规格 | 中规格 | 大规格 |
---|---|---|---|
物理内存 | 8 GiB | 16 GiB | 32 GiB |
s3.stream.allocator.policy | POOLED_HEAP | POOLED_DIRECT | POOLED_DIRECT |
-XX:MaxHeapSize | 6g | 6g | 12g |
-XX:MaxDirectMemorySize | - | 6g | 14g |
s3.wal.cache.size | 1,073,741,824 | 2,147,483,648 | 6,442,450,944 |
s3.block.cache.size | 536,870,912 | 1,073,741,824 | 4,294,967,296 |
s3.wal.upload.threshold | 357,913,941 | 536,870,912 | 536,870,912 |