在 Centos 7.8 上将 innodb_flush_method 设置为 O_DIRECT
Setting innodb_flush_method to O_DIRECT on Centos 7.8
我读到您应该在 MySQL 中将 innodb_flush_method 设置为 O_DIRECT 以避免双重缓冲。我还读到您不应该将 tmpfs 用于 tmpdir,因为那样会禁用 AIO。
在研究这些声明时,我发现 Centos 自动在 tmpdir 上附带了 tmpfs。我读到这会与 O_DIRECT.
产生冲突
一个建议的解决方案是更改 MySQL 的临时文件夹,以便您可以使用本机 AIO 并避免双缓冲。
关于双缓冲的说法是否正确?
或者您是否应该不设置 innodb_flush_method 并让 tmpdir 成为 tmpfs 的默认目录?
将innodb_flush_method设置为O_DIRECT(否则您将通过双重缓存搅动页面缓存)。我不认为在 tmpfs 上设置 tmpdir=/tmp 会完全禁用 MySQL 的 aio,但如果确实如此,您最好在常规文件系统上制作 /tmp。
我读到您应该在 MySQL 中将 innodb_flush_method 设置为 O_DIRECT 以避免双重缓冲。我还读到您不应该将 tmpfs 用于 tmpdir,因为那样会禁用 AIO。
在研究这些声明时,我发现 Centos 自动在 tmpdir 上附带了 tmpfs。我读到这会与 O_DIRECT.
产生冲突一个建议的解决方案是更改 MySQL 的临时文件夹,以便您可以使用本机 AIO 并避免双缓冲。
关于双缓冲的说法是否正确?
或者您是否应该不设置 innodb_flush_method 并让 tmpdir 成为 tmpfs 的默认目录?
将innodb_flush_method设置为O_DIRECT(否则您将通过双重缓存搅动页面缓存)。我不认为在 tmpfs 上设置 tmpdir=/tmp 会完全禁用 MySQL 的 aio,但如果确实如此,您最好在常规文件系统上制作 /tmp。