Skip to main content

服务端性能调优

AutoMQ 通过读写效率优化、资源隔离等方式来优化服务端性能,以达到稳定、高效的运行。

用户需根据自身的硬件环境、业务场景进行参数的调优。

内存相关参数

s3.stream.allocator.policy

设置 AutoMQ 使用的内存分配策略,有 POOLED_HEAPPOOLED_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

网络相关参数

s3.network.baseline.bandwidth

用于声明本机网络带宽的基准值,应设置为本机网络单向(上行 / 下行)能够稳定达到的网络带宽。

因为服务端内部会写WAL、S3、Compaction等操作,所以客户端一份数据写入会对应服务端三份写网络,在加上业务的读写比例,最终可以计算出单台机器能承载的最大写入量。