본문 바로가기

Linux

[EXT4] noauto_da_alloc 에 관해


어떤 문서에 보면 안전성을 위해서 noauto_da_alloc 해야 주어야 한다고 하지만 반대이다

커널 Ext4 도큐먼트도 그렇고 아래 레드햇 내용도 그렇고 안주어야 안전성이 올라간다.

noauto_da_alloc 주면 오토fsync() 안해주겠다는 얘기로 성능은 올라간다.

7.3. File Systems

7.3.1. The Ext4 File System

The ext4 file system is a scalable extension of the default ext3 file system available in Red Hat Enterprise Linux 5. Ext4 is now the default file system for Red Hat Enterprise Linux 6, and is supported for a maximum file system size of 16 TB and a single file maximum size of 16TB. It also removes the 32000 sub-directory limit present in ext3.

Note

For file systems larger than 16TB, we recommend using a scalable high capacity file system such as XFS. For further information, see Section 7.4, “The XFS File System”.

The ext4 file system defaults are optimal for most workloads, but if performance analysis shows that file system behavior is impacting performance, several tuning options are available:

Inode table initialization
For very large file systems, the mkfs.ext4 process 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=1 option. 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=n option for the mount command, where the amount of time spent performing this background initialization is roughly 1/n. The default value for n is 10.

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 file system behavior. However, fsync() operations can be time consuming, so if this automatic behavior is not required, use the -o noauto_da_alloc option with the mount command 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=n option of the mount command. The default value is 3. Valid values range from 0 to 7, with 0 being the highest priority I/O.

For other mkfs and tuning options, please see the mkfs.ext4(8) and mount(8) man pages, as well as the Documentation/filesystems/ext4.txt file in the kernel-doc package.

'Linux' 카테고리의 다른 글

ubuntu HDD 추가 하기  (0) 2012.08.29
CONFIG_MODVERSIONS  (0) 2012.08.29
멀티 IP 쓰기, ip alias  (0) 2012.08.23
Macbook에서 Linux 커널패닉 날때 (IO APIC)  (2) 2012.08.09
Byobu 도움말  (0) 2012.07.24