在Linux中,如何确保我的系统write()调用(以及类似的write-IO调用/变体)到达非易失性存储,绕过内存/缓存/缓冲IO?
答案 0 :(得分:1)
请参阅“Ensuring data reaches disk。”
简而言之,最安全的策略是O_DIRECT + fsync()在适当的位置。
答案 1 :(得分:0)
使用O_DIRECT可以达到目的,但对于大多数应用程序而言效率低下,除非您在应用程序中管理整个文件缓存/缓冲。通常,有两种方法可以完成。
请记住,如果您使用的是mmap,那么msync将是一种更好的方法。