Reprint from Tales on an IT Nobody:
Basically I felt compelled to make a note regarding what filesystem to evaluate when you are performing a MySQL install. There seems to be a lot of reasons NOT to use the ext filesystems, and instead use XFS..
This is a straight out quote from a MySQL at Facebook blog entry:
ext-2 and ext-3 lock a per-inode mutex for the duration of a write. This means that ext-2 and ext-3 do not allow concurrent writes to a file and that can prevent you from getting the write throughput you expect when you stripe a file over several disks with RAID. XFS does not do this which is one of the reasons many people prefer XFS for InnoDB.More on IO concurrency from MySQL big name Domas Mituzas
- O_DIRECT serializes writes to a file on ext2, ext3, jfs, so I got at most 200-250w/s.
- xfs allows parallel (and out-of-order, if that matters) DIO, so I got 1500-2700w/s (depending on file size – seek time changes.. 🙂 of random I/O without write-behind caching. There are few outstanding bugs that lock this down back to 250w/s
A patch for ext4 was created, but it doesn’t appear that it made it in; it seems to yield minimal benefit.
And some other performance and risk observations involved with the most wildly used ext3.
If you’re looking to install or upgrade a MySQL server, it may very well be worth the time investment to research the depths of what filesystem you select, since it has just as much to do with the database performance as the MySQL configuration itself!
And another from a slide of Yoshinori Matsunobu: