ext4、xfs都具备延迟写入这一特性,可以极大的提升性能,减小碎片化。文件系统在一段时间间隔后,向磁盘下刷数据。
当然文件系统脏数据下刷周期设置为比较大的值会提升的读写性能,但是同时也带来了安全性的降低。
ext4的间隔时间与设置:
ext4的默认间隔时间是5s
这一参数可以在mount的时候进行指定,添加如下参数进行指定
-o commit=10
XFS的间隔时间与设置:
xfs的默认时间间隔比ext4长了很多,达到了30s,以下这个文件中存放的就是xfs的延迟写周期
# cat /proc/sys/fs/xfs/xfssyncd_centisecs
3000
默认单位是厘秒,100厘秒=1秒
我们可以通过echo的方式修改这个值,(Min: 100 Default: 3000 Max: 720000)。
linux文件系统的脏页机制
/*
* The interval between `kupdate'-style writebacks
*/
unsigned int dirty_writeback_interval = 5 * 100; /* centiseconds */
EXPORT_SYMBOL_GPL(dirty_writeback_interval);
/*
* The longest time for which data is allowed to remain dirty
*/
unsigned int dirty_expire_interval = 30 * 100; /* centiseconds */
dirty_writeback_interval :linux回写线程的循环周期,默认5s
dirty_expire_interval:脏数据的超时时间,超过这个时间的脏数据将会马上放入回写队列,默认30s
这两个值通过/proc/sys/vm下的dirty_writeback_centisecs和dirty_expire_centisecs进行修改。
相关资料
Linux 3.2中回写机制的变革:https://www.cnblogs.com/zhuyijie/p/6465737.html