I have been using the IOZone benchmarking tool to test the IO ability of EC2 running CentOS 4.
In the last post I showed the 3D surface area chart showing how as the file size grows, the io performance degrades, quite sharply as the file migrates from CPU cache to memory cache to disk.
I redid the charts as what Excel calls contour charts, but remind me of heat maps.
The change was striking, suddenly you can easily see the boundary that IOZone has found for
various file and record sizes. The other standout feature was the appearance of holes or cool spots in the charts at specific file and record sizes.
I went back and specifically tested the file and record combination, for example to do read, write and random read/write on a 16M file with 1M record size I used this command:
iozone -R -r 1m -s 16m -i 0 -i 1 -i2
I have used similar settings for the throughput test as well.
The whole reason for stepping back and running the benchmark tools is that the results are suggesting that choosing the appropriate column datatype, rowsize, tablesize and memory buffers is potentially going to have a large impact on your databases performance.
Look at these contour maps and you will start to see what I mean. The presence of a ridge as the filesize increases for a band of record sizes is also very interesting.
IOZone Benchmark vs EC2 – Part 1
Zipped Excel Spreadsheet for IOZone Benchmark data and charts