小红花·文摘
  • 首页
  • AI Tokens🪙
  • 排行榜🏆
  • 直播
  • FAQ

本文探讨了将O_DIRECT与io_uring组合使用的技术路径,旨在解决数据库和块存储引擎中的双重缓冲与系统调用开销问题。文章详细分析了组合使用的决策边界、O_DIRECT的对齐约束、io_uring固定缓冲区的注册方法及其与O_DIRECT叠加时的注意事项。通过实测对比了三种写路径的性能,指出register_buffers组合在特定环境下可能失败,强调需在目标内核上验证。最后提供了工程检查清单和选型建议,帮助读者在实际应用中做出正确决策。

【存储工程】O_DIRECT 与 io_uring:固定缓冲区、register_buffers 与工程选型

土法炼钢兴趣小组的博客 土法炼钢兴趣小组的博客 · 2026-06-12T00:00:00Z

本文介绍Linux O_DIRECT机制,它绕过Page Cache直接读写磁盘,解决数据库双重缓冲、内存拷贝和缓存污染问题。使用O_DIRECT需满足缓冲区、偏移量和长度对齐要求,且不保证持久性,需配合fsync。它适用于已有应用层缓存的数据库系统(如InnoDB、RocksDB),而小文件频繁读取等场景应保留Page Cache。文中还对比了各数据库策略及io_uring、DAX等替代方案。

【存储工程】Direct I/O 与 O_DIRECT:绕过缓存的得与失

土法炼钢兴趣小组的博客 土法炼钢兴趣小组的博客 · 2025-08-19T00:00:00Z
MySQL中使用innodb_flush_method和innodb_use_fdatasync的系统调用分析

本文讨论了在操作系统级别验证更改innodb_flush_method参数和使用innodb_use_fdatasync的效果。通过使用strace实用程序和检查文件描述符,我们证实了调整这些设置时的行为变化。使用O_DIRECT可以实现更高效的数据写入操作。MySQL 8.0.26中引入的innodb_use_fdatasync及其在特定场景中优于fsync()的偏好说明了MySQL利用系统调用优势以获得性能提升的持续演进。

MySQL中使用innodb_flush_method和innodb_use_fdatasync的系统调用分析

Percona Database Performance Blog Percona Database Performance Blog · 2024-01-18T15:08:43Z
  • <<
  • <
  • 1 (current)
  • >
  • >>
👤 个人中心
在公众号发送验证码完成验证
登录验证
在本设备完成一次验证即可继续使用

完成下面两步后,将自动完成登录并继续当前操作。

1 关注公众号
小红花技术领袖公众号二维码
小红花技术领袖
如果当前 App 无法识别二维码,请在微信搜索并关注该公众号
2 发送验证码
在公众号对话中发送下面 4 位验证码
小红花技术领袖俱乐部
小红花·文摘:汇聚分发优质内容
小红花技术领袖俱乐部
Copyright © 2021-
粤ICP备2022094092号-1
公众号 小红花技术领袖俱乐部公众号二维码
视频号 小红花技术领袖俱乐部视频号二维码