fsync 失败的真相:当它返回错误,你的数据可能已经没了
fsync 返回错误时数据可能已经没了:fsyncgate、写屏障盲区与 PostgreSQL PANIC 的工程含义。
Linux 内核、存储与网络、可观测性、系统架构与大模型基础设施的工程笔记:机制拆解、踩坑复盘与可核对证据,少空谈。
共 3 篇文章 · 返回首页
fsync 返回错误时数据可能已经没了:fsyncgate、写屏障盲区与 PostgreSQL PANIC 的工程含义。
页缓存是 Linux I/O 的灵魂缓冲层。本文从 VM 视角讲 address_space、radix 到 XArray 改造、folio 抽象、readahead 策略、writeback 与 dirty throttling、memcg 对页缓存的约束。
应用程序每一次 read() 或 write() 系统调用,感觉像是直接在操作磁盘上的文件,但实际上,内核在中间插入了一层透明的缓存——页缓存(Page Cache)。这层缓存用物理内存保存最近访问过的文件数据,使得绝大多数读操作不需要触发磁盘 I/O,而写操作可以先落到内存,再由后台线程异步刷回存储设备。