int syncfs(int fd);fync的手册如下:
fsync()将文件描述符fd所引用的文件的所有核心数据(即修改的缓冲区缓存页)传输(“刷新”)到磁盘设备(或其他永久存储设备),以便即使在系统崩溃或重新启动之后也可以检索所有更改的信息。这包括写入或刷新磁盘缓存(如果存在)。调用将阻塞,直到设备报告传输已完成为止。它还刷新与文件相关的元数据信息(请参阅stat(2))。
我们在一个低延迟应用程序( Linux Centos机器上)中使用,Version3.6.0。我们猜测O/S将纪事内存页刷新到磁盘,这阻止了我们的处理线程继续执行,直到刷新完成为止。另一条指向相同结论的信息是,内部应用程序统计数据似乎表明,延迟发生在线程向“纪事”写入新条目的处理过程中。如果是这样的话,我们不确定是什么导致了纪事的刷新,因为当时有大量的空闲内存(125克中有110克空闲)。
有没有办法知道“纪事”何时被刷新到磁盘</e