有谁知道 UBIFS 将文件刷新/同步到闪存需要多长时间?
写入是通过正常的 fwrite 操作发生的,我想知道在没有其他文件写入发生时,该写入提交到闪存多长时间。
如果没有,有什么方法可以查到吗?
谢谢。
有谁知道 UBIFS 将文件刷新/同步到闪存需要多长时间?
写入是通过正常的 fwrite 操作发生的,我想知道在没有其他文件写入发生时,该写入提交到闪存多长时间。
如果没有,有什么方法可以查到吗?
谢谢。
有趣的阅读: Linux 中的 UBIFS 回写旋钮
回写函数可以通过/proc/sys/vm
调用进行调整:
dirty_writeback_centisecs - Linux 定期回写线程唤醒并写出脏数据的频率。这是一种确保所有脏数据在某个时刻到达媒体的机制。
dirty_expire_centisecs - 脏数据过期时间。这是数据可能保持脏的最长时间。在这段时间之后,它将由 Linux 定期回写线程回写。IOW,定期回写线程每“dirty_writeback_centisecs”厘秒唤醒一次,并同步在“dirty_expire_centisecs”厘秒前被弄脏的数据。
dirty_background_ratio - 最大脏数据量占总内存的百分比。当脏数据量变大时,周期性回写线程开始同步,直到变小。即使是未过期的数据也会被同步。这可用于为系统中的脏数据量设置“软”限制。
dirty_ratio - 写入者在添加更多脏数据之前首先同步现有脏数据的最大脏数据量。IOW,这是系统中脏数据量的“硬”限制。
这样我们就可以调整回写同步时间。
它不会是一个常数——它将取决于许多可变因素。
您可以fsync()
在文件上使用写入后,以及时间需要多长时间。