Disk Performance Tuning

From Noah.org
Jump to navigationJump to search

Disk Performance Tuning

I use ext4. My fstab is setup for speed over data safety. This setup is still more robust than an old ext2/ext3 filesystems.

I turn off atime which stop tracking of when files are accessed (still tracks create and write times). The atime stat attribute is not used by very many applications. The `mutt` mail client can use atime, but runs fine without it. The `tmpwatch` command uses it by default, but can be configured to use ctime instead. You can see the atime of a file using the `stat` command. Other than that, most people don't care about atime.

As a compromise, you can set relatime.

I set the mode to journal_data_writeback. This basically means that data may be written to the disk before the journal. The data consistency guarantees are the same as the ext3 file system. The downside is that if your system crashes before the journal gets written then you may loose new data -- the old data may magically reappear. This is still better than ext2 because file system integrity is maintained, so the file system is at least consistent even after an unclean shutdown. In other words, you may loose data, but you won't have corrupt data.

/etc/fstab

Read Before you reboot before you make changes to /etc/fstab.

Edit /etc/fstab to change ext3 mount options:

# /dev/sda1
UUID=d4769677-d2a9-4d87-9165-fc44760495bc / ext3 defaults,errors=remount-ro,noatime,data=writeback 0 1

Older systems might use the /dev/hda1 notation (if upgrading you can get the UUID using the vol_id /dev/hda1 command):

/dev/hda1 / ext3 defaults,errors=remount-ro,noatime,data=writeback 0 1

Before you reboot

Run this before you reboot and after changing /etc/fstab:

tune2fs -o journal_data_writeback /dev/sda1

After you reboot

You can check the mount options in effect with the following command:

cut /proc/mounts -f 2,3,4 -d " " | grep ^/\\W\\+ | grep -v rootfs