To accurately show the performance differences we did not use Intel's IOMeter, instead we created some new server-benchmarks using the trace/playback method of Intel's IPEAK Storage Performance Toolkit. The access patterns created by IOMeter miss a sense of locality. Whilst in real life related data is often localized close to each other IOMeter creates access patterns that are always completely random. An example of locality to a high degree can be found in the form of a log file. The end of the log file will be on a fixed position on the disk which will move somewhat, but will not be placed randomly on the disk. Disk activity created by writing data to one or more log files can efficiently be optimized by a RAID-controller. This is not the case with the random patterns created by IOMeter.
The server benchmarks are based on a trace of disk-activity created by Apache2-webserver and a MySQL 4.0 database using Windows XP. The reason for using Windows is simple: Intel's IPEAK SPT does not work under non-Windows OS. The used machine was equipped with 2 AMD Opteron 242-processors and 2GB of RAM to ensure that optimizations by the OS's disk-cache had a realistic influence on disk activity. Using Apache bench Apache was ordered to serve pictures from the pics-archive of Tweakers.net which where stored five-fold to get a data-range of 2.5GB. Aside to serving pictures Apache was sent out to write some access, error and user agent logs also. The OS was given some time to fill its disk-cache to about 1.6GB before testing was started. Two types of the same test where made; a light flavor with a concurrency of 2 and a heavy flavor with a concurrency of 20 simultaneous requests. The differences in the trace can be seen; an average queue-length of 1.86 I/O's in the light test and 3.50 in the heavy test. The relation between the written and read amount of data is respectively 75/25 and 86/14. The transfer rate during the trace was 3.3MB/s on average during the light test and 35.1MB/s on average during the heavy test. Processor-load was under 100 percent in both cases which means the bottleneck here is the Mylex AcceleRAID 600 using four Atlas 15K in RAID 10.
The benchmark has a remarkable outcome; the differences between PCI-speed are very small. Even 32-bits 33MHz PCI performs almost as well as 64-bits 66MHz does under load on the MSI MegaRAID Elite 1600. The Mylex AcceleRAID 600 performs the same on both 66MHz and 100MHz PCI-X.
|Mylex AcceleRAID 600||PCI-X 100||435|
|Mylex AcceleRAID 600||PCI64/66||435|
|LSI MegaRAID Elite 1600||PCI64/66||418|
|LSI MegaRAID Elite 1600||PCI32/33||413|
|LSI MegaRAID Elite 1600||PCI32/33||Load||407|
|LSI MegaRAID Elite 1600||PCI64/66||568|
|LSI MegaRAID Elite 1600||PCI32/33||562|
|LSI MegaRAID Elite 1600||PCI32/33||Load||556|
|Mylex AcceleRAID 600||PCI-X 100||510|
|Mylex AcceleRAID 600||PCI64/66||510|
The database benchmark was made using a local copy of the Tweakers.net database. Via Apache bench a PHP-script was run, in it's turn opening random front-page, news, pricewatch and assorted using fopen(). The resulting SQL-queries made for a realistic load of the database server. During testing all logging by Apache was stopped to ensure only MySQL and Windows where accessing the hard disk. Like before we made a light and a heavy benchmark. In the light test the concurrency level in Apache bench was 10 and in the heavy test made up for 50 simultaneous requests. During this the number of queries on the database server rose to about 500 p/s which can be compared to Tweakers.net during rush-hour.
The Mylex AcceleRAID 600 and the MSI MegaRAID Elite 1600 performed completely opposite in this test. The MegaRAID is faster under a light load while the AcceleRAID takes the lead when there is a heavy load. Differences between 64-bits 66MHz and 32-bits 33MHz PCI are much bigger than in the webserver benchmarks. The MegaRAID performs 12 to 16 percent better when placed on the faster bus. When the legacy PCI-bus receives additional load the difference rises to 22 to 30 percent. In the light db-server benchmark the AcceleRAID performs the same on both the 66MHz and the 100MHz PCI-X bus, the heavy benchmarks shows an increase in speed of about 2 percent when using the 100MHz bus.
|LSI MegaRAID Elite 1600||PCI64/66||1316|
|LSI MegaRAID Elite 1600||PCI32/33||1176|
|LSI MegaRAID Elite 1600||PCI32/33||Load||1075|
|Mylex AcceleRAID 600||PCI-X 100||990|
|Mylex AcceleRAID 600||PCI64/66||990|
|Mylex AcceleRAID 600||PCI-X 100||1724|
|Mylex AcceleRAID 600||PCI64/66||1695|
|LSI MegaRAID Elite 1600||PCI64/66||1639|
|LSI MegaRAID Elite 1600||PCI32/33||1408|
|LSI MegaRAID Elite 1600||PCI32/33||Load||1250|
It's fair to assume that differences between legacy PCI and 64-bits 66MHz PCI-X would be even greater when the benches where unleashed on a RAID-0 array using four Atlas 15K's. Since no sober systems-engineer would trust his sensitive data to a RAID-0 array we performed the benchmarks on a RAID-5 array with four disks.