7.3. File Systems
7.3.1. The Ext4 File System
- Inode table initialization
- For very large file systems, the
mkfs.ext4process can take a very long time to initialize all inode tables in the file system. This process can be deferred with the
-E lazy_itable_init=1option. If this is used, kernel processes will continue to initialize the file system after it is mounted. The rate at which this initialization occurs can be controlled with the
-o init_itable=noption for the
mountcommand, where the amount of time spent performing this background initialization is roughly 1/n. The default value for
- Auto-fsync behavior
- Because some applications do not always properly
fsync()after renaming an existing file, or truncating and rewriting, ext4 defaults to automatic syncing of files after replace-via-rename and replace-via-truncate operations. This behavior is largely consistent with older ext3 filesystem behavior. However,
fsync()operations can be time consuming, so if this automatic behavior is not required, use the
-o noauto_da_allocoption with the
mountcommand to disable it. This will mean that the application must explicitly use
fsync()to ensure data persistence.
- Journal I/O priority
- By default, journal commit I/O is given a slightly higher priority than normal I/O. This priority can be controlled with the
journal_ioprio=noption of the
mountcommand. The default value is
3. Valid values range from 0 to 7, with 0 being the highest priority I/O.
mkfsand tuning options, please see the
mount(8)man pages, as well as the
Documentation/filesystems/ext4.txtfile in the kernel-doc package.