选择您的 Cookie 首选项

我们使用必要 Cookie 和类似工具提供我们的网站和服务。我们使用性能 Cookie 收集匿名统计数据,以便我们可以了解客户如何使用我们的网站并进行改进。必要 Cookie 无法停用,但您可以单击“自定义”或“拒绝”来拒绝性能 Cookie。

如果您同意,AWS 和经批准的第三方还将使用 Cookie 提供有用的网站功能、记住您的首选项并显示相关内容,包括相关广告。要接受或拒绝所有非必要 Cookie,请单击“接受”或“拒绝”。要做出更详细的选择,请单击“自定义”。

配置 Amazon EC2 上工作负载的防撕裂写入

聚焦模式
配置 Amazon EC2 上工作负载的防撕裂写入 - Amazon Elastic Compute Cloud

具有支持卷的受支持的实例类型上默认启用撕裂写防护功能。您无需启用任何其他设置即可启用卷或实例的撕裂写防护功能。

注意

对不支持撕裂写防护的工作负载不会产生性能影响。您无需对这些工作负载进行任何更改。

支持撕裂写防护但未配置使用该功能的工作负载会继续使用双写缓冲区,不会获得任何性能优势。

要将 MySQL 或 MariaDB 软件堆栈配置为禁用双写缓冲区并使用撕裂写防护功能,请完成以下步骤:

  1. 将您的卷配置为使用带有 BigAlloc 选项的 ext4 文件系统,并将集群大小设置为 4 KiB、8 KiB 或 16 KiB。使用集群大小为 4 KiB、8 KiB 或 16 KiB 的 BigAlloc,可确保文件系统分配与各自边界对齐的文件。

    $ mkfs.ext4 -O bigalloc -C 4096|8192|16384 device_name
    注意

    对于 MySQL 和 MariaDB,必须使用 -C 16384 来匹配数据库页面大小。将分配粒度设置为页面大小倍数以外的值可能会导致分配与存储设备撕裂写防护边界不匹配。

    例如:

    $ mkfs.ext4 -O bigalloc -C 16384 /dev/nvme1n1
  2. 将 InnoDB 配置为使用 0_DIRECT 刷新方法并关闭 InnoDB 双写模式。使用首选文本编辑器打开 /etc/my.cnf,更新 innodb_flush_methodinnodb_doublewrite 参数,如下所示:

    innodb_flush_method=O_DIRECT innodb_doublewrite=0
重要

如果您使用的是逻辑卷管理器(LVM)或其他存储虚拟化层,请确保卷的起始偏移量以 16 KiB 倍数对齐。这是相对于底层 NVMe 存储而言,用以考虑存储虚拟化层使用的元数据标头和超级块。如果您向 LVM 物理卷添加偏移量,则可能引起文件系统分配与 NVMe 设备的偏移量有偏差,从而导致撕裂写防护失效。有关更多信息,请参阅 Linux manual page(Linux 手册页面)中的 --dataalignmentoffset

隐私网站条款Cookie 首选项
© 2025, Amazon Web Services, Inc. 或其附属公司。保留所有权利。