Compact Flash benchmarks, updated 7/2007


Introduction

This short benchmark compares the seek times of four different kinds of disk style storage device:-
1. 1 Gigabyte Kingston 24x supporting PIO4
2. 4 Gigabyte Fujifilm 100x supporting MDMA2
3. 40 Gigabyte Maxtor 7200 rpm supporting UDMA3
4. 76 Gigabyte Raptor 10000 rpm supporting SATA

The previous benchmark included a 18 Gigabyte SCSI 10000 rpm drive and excluded the 4 Gigabyte 100x compact flash drive. This benchmark updates that benchmark with the inclusion of MDMA2 capable compact flash. The 1 Gigabyte Kingston was limited to PIO4 and so was CPU hungry and limited to 5 Megabytes/second. The newer 4 Gigabyte Fujifilm compact flash is capable of MDMA2 (multiword DMA), using much less CPU time and achieving a maximum transfer rate of 15 Megabytes/second.

The test system was a Athlon XP2800+, Nforce2 chipset, 1 Gig of ram, a 2.6.15.1 kernel and using the Raptor as the main system harddisk, and the others added to run these tests. Unlike the previous benchmark, these tests were done using thrash.

Benchmarks

The last two data points (ending in "Full drive seek") denote that random seeking was from the beginning to the end of the entire hard disk. The other tests seek inside the first 1 Gigabyte of the drive, to ensure some fairness in comparison to the smallest Compact Flash disk. The last two tests cover the whole disk to compare against these same two disks seeking over the first 1 Gigabyte. Seeking over the whole of the 4 Gigabyte CF was no different to seeking over the first 1 Gigabyte - as you would expect.

Sequential transfer times (outer edge of disk) are:
5.2 MB/s -- 1 Gigabyte Kingston 24x supporting PIO4
15.4 MB/s -- 4 Gigabyte Fujifilm 100x supporting MDMA2
55 MB/s -- 40 Gigabyte Maxtor 7200 rpm supporting UDMA3
65 MB/s -- 76 Gigabyte Raptor 10000 rpm supporting SATA

Conclusion

Looking at the numbers, the 1 Gigabyte CF is the fastest of them all when reading small blocks. Forcing the 4 Gigabyte CF to be PIO4 did not increase its speed. I suspect the 1 Gigabyte would be much slower if the tests were made with a slower processor as PIO requires the processor to do all the work of moving data, CPU time that could be spent processing the data.

Larger block sizes like 1k and 4k are more likely to be seen in an actual file system, and as the graph shows, the 4 Gigabyte CF is nearly as quick, but (not shown) uses very little CPU time. The curves of both CF drives do show a significant amount of seek time, the smaller block sizes have a much lower transfer rate than the larger block sizes. As the CF is solid state, there is no real time to seek, the apparent seek time is actually overhead in the OS and chipset.

Both CF drives get faster as the block size increases, the Raptor only passes the 4 Gigabyte CF when the blocksize reaches 100 KB. According to stats on SR, 64 KB is the largest common read size in a server environment, smaller again in a single user environment. So we see modern CF should be much faster than most hard drives.

The CF drives run out of steam simply because their interfaces reach their maximum speeds. For MDMA2 capable CF, this limitation could be mitigated by running multiple CF cards in a RAID 0 configuration, almost certainly requiring one IDE channel per CF card.

Contact

Written by Greg: R.Gregory at liv.ac.uk, on 7/7/07. Would welcome any comments.