用户需根据自身的硬件环境、业务场景进行参数的调优。
内存相关参数
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 |