有谁知道UBIFS将文件刷新/同步到闪存需要多长时间?
写入通过正常的fwrite操作发生,我想知道在没有其他写入文件发生时,写入提交到闪存之前多久。
如果没有,任何找出方法?
感谢。
答案 0 :(得分:3)
一个有趣的读物: http://www.linux-mtd.infradead.org/doc/ubifs.html - Linux中的回写旋钮
可以通过/ proc / sys调用来调整回写函数:
dirty_writeback_centisecs - Linux定期回写线程唤醒和写出脏数据的频率。这是一种确保所有脏数据在某个时刻点击媒体的机制。
dirty_expire_centisecs - 脏数据过期时间。这是数据可能保持脏的最长时间。在这段时间之后,它将由Linux定期回写线程写回。 IOW,周期性回写线程唤醒每个“dirty_writeback_centisecs”厘秒并同步数据,这些数据在几天前被弄脏了“dirty_expire_centisecs”。
dirty_background_ratio - 最大脏数据量占总内存的百分比。当脏数据量变大时,周期性回写线程开始同步它直到它变小。即使是未过期的数据也会同步。这可用于为系统中的脏数据量设置“软”限制。
dirty_ratio - 写入者在添加更多数据之前首先同步现有脏数据的最大脏数据量。 IOW,这是系统中脏数据量的“硬”限制。
这样我们就可以调整回写同步时间。
答案 1 :(得分:1)
它不会是一个常数 - 它将取决于许多可变因素。
您可以在写完后在文件上使用fsync()
,并计算所需的时间。