diff options
author | Theodore Ts'o <tytso@mit.edu> | 2009-01-06 14:53:06 -0500 |
---|---|---|
committer | Theodore Ts'o <tytso@mit.edu> | 2009-01-06 14:53:06 -0500 |
commit | 8e1a4857cd92e32e642b3e7184c7f6bf85c96e2e (patch) | |
tree | 2d82db0e86e080bd1673572b77ae6da2cc870067 /Documentation | |
parent | 59e315b4c410b00a9acd0f24a00dbadbe81ce692 (diff) |
Update Documentation/filesystems/ext4.txt
Fix paragraph with recommendations on how to tune ext4 for benchmarks.
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
Diffstat (limited to 'Documentation')
-rw-r--r-- | Documentation/filesystems/ext4.txt | 42 |
1 files changed, 32 insertions, 10 deletions
diff --git a/Documentation/filesystems/ext4.txt b/Documentation/filesystems/ext4.txt index 174eaff7ded..f75ab101c00 100644 --- a/Documentation/filesystems/ext4.txt +++ b/Documentation/filesystems/ext4.txt | |||
@@ -58,13 +58,22 @@ Note: More extensive information for getting started with ext4 can be | |||
58 | 58 | ||
59 | # mount -t ext4 /dev/hda1 /wherever | 59 | # mount -t ext4 /dev/hda1 /wherever |
60 | 60 | ||
61 | - When comparing performance with other filesystems, remember that | 61 | - When comparing performance with other filesystems, it's always |
62 | ext3/4 by default offers higher data integrity guarantees than most. | 62 | important to try multiple workloads; very often a subtle change in a |
63 | So when comparing with a metadata-only journalling filesystem, such | 63 | workload parameter can completely change the ranking of which |
64 | as ext3, use `mount -o data=writeback'. And you might as well use | 64 | filesystems do well compared to others. When comparing versus ext3, |
65 | `mount -o nobh' too along with it. Making the journal larger than | 65 | note that ext4 enables write barriers by default, while ext3 does |
66 | the mke2fs default often helps performance with metadata-intensive | 66 | not enable write barriers by default. So it is useful to use |
67 | workloads. | 67 | explicitly specify whether barriers are enabled or not when via the |
68 | '-o barriers=[0|1]' mount option for both ext3 and ext4 filesystems | ||
69 | for a fair comparison. When tuning ext3 for best benchmark numbers, | ||
70 | it is often worthwhile to try changing the data journaling mode; '-o | ||
71 | data=writeback,nobh' can be faster for some workloads. (Note | ||
72 | however that running mounted with data=writeback can potentially | ||
73 | leave stale data exposed in recently written files in case of an | ||
74 | unclean shutdown, which could be a security exposure in some | ||
75 | situations.) Configuring the filesystem with a large journal can | ||
76 | also be helpful for metadata-intensive workloads. | ||
68 | 77 | ||
69 | 2. Features | 78 | 2. Features |
70 | =========== | 79 | =========== |
@@ -74,7 +83,7 @@ Note: More extensive information for getting started with ext4 can be | |||
74 | * ability to use filesystems > 16TB (e2fsprogs support not available yet) | 83 | * ability to use filesystems > 16TB (e2fsprogs support not available yet) |
75 | * extent format reduces metadata overhead (RAM, IO for access, transactions) | 84 | * extent format reduces metadata overhead (RAM, IO for access, transactions) |
76 | * extent format more robust in face of on-disk corruption due to magics, | 85 | * extent format more robust in face of on-disk corruption due to magics, |
77 | * internal redunancy in tree | 86 | * internal redundancy in tree |
78 | * improved file allocation (multi-block alloc) | 87 | * improved file allocation (multi-block alloc) |
79 | * fix 32000 subdirectory limit | 88 | * fix 32000 subdirectory limit |
80 | * nsec timestamps for mtime, atime, ctime, create time | 89 | * nsec timestamps for mtime, atime, ctime, create time |
@@ -116,6 +125,12 @@ grouping of bitmaps and inode tables. Some test results available here: | |||
116 | When mounting an ext4 filesystem, the following option are accepted: | 125 | When mounting an ext4 filesystem, the following option are accepted: |
117 | (*) == default | 126 | (*) == default |
118 | 127 | ||
128 | ro Mount filesystem read only. Note that ext4 will | ||
129 | replay the journal (and thus write to the | ||
130 | partition) even when mounted "read only". The | ||
131 | mount options "ro,noload" can be used to prevent | ||
132 | writes to the filesystem. | ||
133 | |||
119 | extents (*) ext4 will use extents to address file data. The | 134 | extents (*) ext4 will use extents to address file data. The |
120 | file system will no longer be mountable by ext3. | 135 | file system will no longer be mountable by ext3. |
121 | 136 | ||
@@ -144,7 +159,11 @@ journal_dev=devnum When the external journal device's major/minor numbers | |||
144 | identified through its new major/minor numbers encoded | 159 | identified through its new major/minor numbers encoded |
145 | in devnum. | 160 | in devnum. |
146 | 161 | ||
147 | noload Don't load the journal on mounting. | 162 | noload Don't load the journal on mounting. Note that |
163 | if the filesystem was not unmounted cleanly, | ||
164 | skipping the journal replay will lead to the | ||
165 | filesystem containing inconsistencies that can | ||
166 | lead to any number of problems. | ||
148 | 167 | ||
149 | data=journal All data are committed into the journal prior to being | 168 | data=journal All data are committed into the journal prior to being |
150 | written into the main file system. | 169 | written into the main file system. |
@@ -219,9 +238,12 @@ minixdf Make 'df' act like Minix. | |||
219 | 238 | ||
220 | debug Extra debugging information is sent to syslog. | 239 | debug Extra debugging information is sent to syslog. |
221 | 240 | ||
222 | errors=remount-ro(*) Remount the filesystem read-only on an error. | 241 | errors=remount-ro Remount the filesystem read-only on an error. |
223 | errors=continue Keep going on a filesystem error. | 242 | errors=continue Keep going on a filesystem error. |
224 | errors=panic Panic and halt the machine if an error occurs. | 243 | errors=panic Panic and halt the machine if an error occurs. |
244 | (These mount options override the errors behavior | ||
245 | specified in the superblock, which can be configured | ||
246 | using tune2fs) | ||
225 | 247 | ||
226 | data_err=ignore(*) Just print an error message if an error occurs | 248 | data_err=ignore(*) Just print an error message if an error occurs |
227 | in a file data buffer in ordered mode. | 249 | in a file data buffer in ordered mode. |