第 19 章 调优指南
查看以下调整 AMQ Broker 的准则。
19.1. 调优持久性
参阅以下信息来获取有关提高持久性性能的提示。
将消息持久化到基于文件的日志中。
使用基于文件的日志实现消息持久性。AMQ Broker 也可以将消息持久化到 Java 数据库连接(JDBC)数据库,但与使用基于文件的日志相比,这具有性能成本。
将消息日志放在其自身的物理卷上。
仅附加日志的一个优点是,磁盘头移动最小化。如果磁盘共享,这个优点会丢失。当多个进程(如事务协调器、数据库和其他日志)的多个进程时,从同一磁盘读取和写入时,性能会受到影响,因为磁盘头必须在不同的文件之间跳过。如果您使用分页或大型消息,请确保它们也放在单独的卷中。
调优
journal-min-files
参数值。将
journal-min-files
参数设置为适合您的平均可持续速率的文件数。如果在日志数据目录中经常创建新文件,这意味着要保留大量数据,您需要增加日志维护的最小文件数。这允许日志重复使用,而不是创建新的数据文件。优化日志文件大小。
将
journal-file-size
参数的值与磁盘上的 cylinder 的容量一致。大多数系统上应该具有 10 MB 的默认值。使用异步 IO (AIO)日志类型。
对于 Linux 操作系统,请将您的日志类型保留为 AIO。AIO 扩展比 Java 新 I/O (NIO)更好地扩展。
调优
journal-buffer-timeout
参数值。增加
journal-buffer-timeout
参数的值会导致以牺牲延迟而增加吞吐量。调优
journal-max-io
参数值。如果使用 AIO,可以通过增加
journal-max-io
参数值来提高性能。如果使用 NIO,请不要更改这个值。调优
journal-pool-files
参数。将
journal-pool-files
参数(即日志文件池的上限阈值)设置为与您预期负载接近的数字。如果需要,日志会超过上限,但尽可能缩小到阈值。这允许重复使用文件,而不需要消耗更多磁盘空间。如果您在日志数据目录中经常看到新文件创建太频繁,请增加journal-pool-size
参数。增加此参数可让日志重复使用更多现有文件,而不是创建新文件,从而提高性能。如果您不需要对日志写入进行持久性保证,请禁用
journal-data-sync
参数。如果发生电源失败,则不需要在日志写入时具有保证持久性,请禁用
journal-data-sync
参数,并使用日志类型NIO
或MAPPED
来提高性能。