第 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 参数,并使用日志类型 NIOMAPPED 来提高性能。

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.