By default Ubuntu is installed with the root filesystem at the start of the disk drive and with swap right at the end. If one analyses the read/write performance of a hard disk drive (HDD) one will quickly spot that the I/O rates differ depending on the physical location of the data.
From the relatively small sample of laptop and desktop drives that I've looked at it seems that reads from the logical start of the drive are fastest and drop off down to roughly half that rate near the end of the drive. The rate is higher for data on the outer tracks (because there are more data sectors) and lower toward the inner tracks (fewer data sectors).
Since my new 7200rpm 250GB drive performs fastest at the lowest logical block locations, it makes sense to construct my partitions to utilise this. For my configuration, I want to load my kernels and initrd in quickly and be able to swap and hibernate fairly quickly too. Next I want applications to load quickly, and my user data (such as mp3s, cached Email, etc) I care less about for performance. So, with these constraints, I created separate partitions in this order:
1st /boot (ext4), 2nd swap, 3rd / (ext4) and 4th /home (ext4).
Some quick'n'dirty write benchmarks show me that:
..so this should make booting, swapping and hibernating just slightly faster. Over the lifetime of the drive the random file writes and deletions in /home won't cause /boot new kernels and initrd images to be fragmented because the are on separate partitions. Also I can avoid over-writing all my user data in /home if I do a clean installation of Ubuntu into /boot and / at a later date. Read more