暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

【ACDU 翻译】 MySQL 15.8.12 启用专用 MySQL 服务器的自动配置

原创 由迪 2022-05-13
505

15.8.12 启用专用 MySQL 服务器的自动配置

innodb_dedicated_server启用时, 自动InnoDB配置以下变量:

innodb_dedicated_server仅当 MySQL 实例驻留在可以使用所有可用系统资源的专用服务器上 时才考虑启用 。例如,如果您在 Docker 容器或仅运行 MySQL 的专用 VM 中运行 MySQL 服务器,请考虑启用。innodb_dedicated_server如果 MySQL 实例与其他应用程序共享系统资源,不建议 启用 。

以下信息描述了如何自动配置每个变量。

  • innodb_buffer_pool_size

    缓冲池大小根据服务器上检测到的内存量进行配置。

    表 15.8 自动配置的缓冲池大小

    检测到的服务器内存 缓冲池大小
    小于 1GB 128MiB(默认值)
    1GB 到 4GB detected server memory* 0.5
    大于 4GB detected server memory* 0.75
  • innodb_log_file_size

    从 MySQL 8.0.14 开始,日志文件大小根据自动配置的缓冲池大小进行配置。

    表 15.9 自动配置的日志文件大小

    缓冲池大小 日志文件大小
    小于 8GB 512MiB
    8GB 至 128GB 1024MiB
    大于 128GB 2048MiB

    笔记

    在 MySQL 8.0.14 之前,该 innodb_log_file_size 变量是根据服务器上检测到的内存量自动配置的,如下所示:

    表 15.10 自动配置的日志文件大小(MySQL 8.0.13 及更早版本)

    检测到的服务器内存 日志文件大小
    < 1GB 48MiB(默认值)
    <= 4GB 128MiB
    <= 8GB 512MiB
    <= 16GB 1024MiB
    > 16GB 2048MiB
  • innodb_log_files_in_group

    日志文件的数量根据自动配置的缓冲池大小(以千兆字节为单位)进行配置。innodb_log_files_in_group MySQL 8.0.14 中添加 了变量的自动配置 。

    表 15.11 自动配置的日志文件数

    缓冲池大小 日志文件数
    小于 8GB ROUND(buffer pool size
    8GB 至 128GB ROUND(*buffer pool size** 0.75)
    大于 128GB 64

    笔记

    innodb_log_files_in_group 如果四舍五入的缓冲池大小值小于 2GB,则强制执行 最小值 2。

  • innodb_flush_method

    刷新方法设置 为O_DIRECT_NO_FSYNC何时启 用innodb_dedicated_server。如果该O_DIRECT_NO_FSYNC设置不可用, innodb_flush_method则使用默认设置。

    InnoDB在刷新 I/O 期间使用,但 在每次写入操作后 O_DIRECT 跳过系统调用。fsync()

    警告

    在 MySQL 8.0.14 之前,此设置不适用于 XFS 和 EXT4 等需要 fsync()系统调用来同步文件系统元数据更改的文件系统。

    从 MySQL 8.0.14 开始,fsync()在创建新文件、增加文件大小和关闭文件后调用,以确保同步文件系统元数据更改。fsync() 每次写入操作后仍会跳过系统调用 。

    如果重做日志文件和数据文件驻留在不同的存储设备上,则可能会丢失数据,并且在数据文件写入从没有电池支持的设备缓存中刷新之前发生意外退出。如果您使用或打算使用不同的存储设备来存储重做日志文件和数据文件,并且您的数据文件驻留在没有电池供电的缓存的设备上,请O_DIRECT 改用。

如果在选项文件或其他地方显式配置了自动配置的选项,则使用显式指定的设置,并且类似的启动警告会打印到 stderr

[警告] [000000] InnoDB:innodb_buffer_pool_size 的选项 innodb_dedicated_server 被忽略,因为显式指定了 innodb_buffer_pool_size=134217728。

一个选项的显式配置不会阻止其他选项的自动配置。

如果innodb_dedicated_server启用并 innodb_buffer_pool_size在选项文件中显式配置, innodb_log_file_size并且 innodb_log_files_in_group仍然根据根据服务器上检测到的内存量计算的缓冲池大小值自动配置,即使该值不用于配置缓冲区的大小水池。

每次启动 MySQL 服务器时,都会根据需要评估和重新配置自动配置的设置。

最后修改时间:2022-05-13 21:48:59
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论