On Fri, Aug 28, 2009 at 4:32 PM, Herbert Graeber<lists@graeber-clan.de> wrote:
Am Freitag 28 August 2009 16:17:43 schrieb Jeff Mahoney:
I did some performance testing with SSDs to gauge what factors are important in trying to tune for them. I've ignored parameters that will increase performance in all cases (noatime,nodiratime,etc) and focused on SSD-specific (and RAID) factors like striping and alignment.
There is an article by Theodore Ts'o about this:
http://thunk.org/tytso/blog/2009/02/20/aligning-filesystems-to-an-ssds-erase... block-size/
The thing about SSD devices is that they have more in common with RAID controllers than spinning disks. Behind the ATA interface lie a number of chips which the device's firmware is responsible for managing. Like RAID controllers, some do this better than others. The higher end devices will have smarter firmware and better chips. They may even make this research moot. For performance on netbooks, the cheap low-end devices are of particular interest.
All of the following numbers were the result of running dbench -s 2 (synchronous mode, 2 threads). My test systems are dual core.
Some details: - Unaligned means that the first partition starts at sector 63 and each cylinder is 16065 sectors. - Aligned means that the first partition starts at sector 256. For my testing the cylinder size was ignored, but it's possible to align cylinders to 128k with H=224 and S=56. - The file system is ext4 with various options. - I ran each test 3 times. - All tests were run from a rescue image of the 32 bit version of openSUSE 11.2m3. The only reason for this is that I hadn't downloaded a newer version for 32-bit systems yet.
The columns correspond to: Run 1 MB/s Run 2 MB/s Run 3 MB/s Avg MB/s Percent improvement
Acer Aspire One, PATA, 8 GB Intel SSD (SSDPAMM008G1) hdparm results unavailable (took the disk out) Unaligned, no options: 2.187 2.118 2.169 2.158 0% Unaligned, -E stripe-width=32: 2.410 2.472 2.415 2.432 +12.7% Unaligned, -E stripe-width=128: 2.281 2.446 2.263 2.330 +7.8% Unaligned, -E stride=32: 2.165 2.241 2.145 2.184 +1.2%
Aligned, no options: 2.379 2.517 2.268 2.388 +10.7% Aligned, -E stripe-width=32: 2.604 2.541 2.816 2.654 +23.0% Aligned, -E stripe-width=128: 2.544 2.816 2.574 2.645 +22.6% Aligned, -E stride=32: 2.368 2.313 2.445 2.375 +10.0%
Lenovo Thinkpad X300, SATA, 64 GB Samsung SSD (MCCOE64G) hdparm -t: 88.92 MB/s hdparm --direct -t: 103.27 MB/s Unaligned, no options: 21.239 21.511 21.317 21.356 +0% Unaligned, -E stripe-width=32: 21.231 21.345 21.529 21.368 +0.06% Unaligned, -E stripe-width=128: 21.648 21.410 21.370 21.476 +0.06% Unaligned, -E stride=32: 21.674 21.583 21.289 21.513 +0.07%
Aligned, no options: 24.381 24.619 24.430 24.569 +15.0% Aligned, -E stripe-width=32: 24.580 24.523 24.605 24.569 +15.0% Aligned, -E stripe-width=128: 24.282 24.369 24.436 24.362 +14.0% Aligned, -E stride=32: 24.600 24.577 24.546 24.574 +15.1%
I had another SSD for my Aspire but its performance under dbench is very suspect (< 1MB/s despite a hdparm of ~ 60 MB/s), so I haven't included those results.
I have made similar but less systematic tests on my EEE-PC 900a with the original SSD and a runcore SSD and have got similar results.
The results, with a whopping two test devices, seem to indicate that alignment helps on low and high end devices while striping seems to help on low end devices. I'd be interested to hear how a larger cross section of devices perform. I'll also have results from LVM volumes later today. Since the placement of LVs can also affect alignment, it may be worth looking at as well.
As a consequence it would be nice to have support for formatting with H=224 and S=56 during installation. I have written a feature request for this:
I commented significantly on the openfate entry. I don't know what tool opensuse uses to partition during install. Can someone tell me? I'll research what its state of support for the new block device geometry parameters is. ie. The linux community as a whole is adding support throughout the block stack including user space for geometries not based on 512byte atomic write blocks. (ie. Physical sectors). The stat of opensuse's M6 support likely depends on which partitioning tool is in use. Thanks Greg -- Greg Freemyer Head of EDD Tape Extraction and Processing team Litigation Triage Solutions Specialist http://www.linkedin.com/in/gregfreemyer Preservation and Forensic processing of Exchange Repositories White Paper - <http://www.norcrossgroup.com/forms/whitepapers/tng_whitepaper_fpe.html> The Norcross Group The Intersection of Evidence & Technology http://www.norcrossgroup.com -- To unsubscribe, e-mail: opensuse-factory+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-factory+help@opensuse.org