> ## Documentation Index
> Fetch the complete documentation index at: https://docs.automq.com/llms.txt
> Use this file to discover all available pages before exploring further.

# 服务端性能调优

> Optimize AutoMQ server performance with memory allocation strategies and network tuning for stable, efficient operation. Tailored for specific hardware and scenarios.

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

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

## 内存相关参数

### s3.stream.allocator.policy

设置 AutoMQ 使用的内存分配策略，推荐使用  `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_DIRECT`  时， `s3.wal.cache.size`  +  `s3.block.cache.size`  之和控制在  `MaxDirectMemorySize`  的 1/2 左右（当  `MaxDirectMemorySize`  较大时，可适当上浮）。

| -<br />                          | 微型规格<br />           | 小规格<br />            | 中规格<br />            | 大规格<br />            |
| -------------------------------- | -------------------- | -------------------- | -------------------- | -------------------- |
| 物理内存<br />                       | 4 GiB<br />          | 8 GiB<br />          | 16 GiB<br />         | 32 GiB<br />         |
| s3.stream.allocator.policy<br /> | POOLED\_DIRECT<br /> | POOLED\_DIRECT<br /> | POOLED\_DIRECT<br /> | POOLED\_DIRECT<br /> |
| -XX:MaxHeapSize<br />            | 1g<br />             | 2g<br />             | 6g<br />             | 12g<br />            |
| -XX:MaxDirectMemorySize<br />    | 1500m<br />          | 3g<br />             | 6g<br />             | 14g<br />            |
| s3.wal.cache.size<br />          | 524,288,000<br />    | 1,073,741,824<br />  | 2,147,483,648<br />  | 6,442,450,944<br />  |
| s3.block.cache.size<br />        | 104,857,600<br />    | 536,870,912<br />    | 1,073,741,824<br />  | 4,294,967,296<br />  |
| s3.wal.upload.threshold<br />    | 62,914,560<br />     | 357,913,941<br />    | 536,870,912<br />    | 536,870,912<br />    |

## 网络相关参数

### s3.network.baseline.bandwidth

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

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