Benchmarks
February 02, 2007
In the article lighty 1.5.0 and linux-aio we proposed a benchmark suite for measuring the performance for a disk-io-bound application.
http_load
As load-generator we use http_load as it
- allows random fetches from a list of URLs
- allows a large number of parallel requests
- is portable
On the command-line we want to execute it like:
$ ./http_load -verbose -parallel 100 -fetches 10000 urls
file pool
On the machine which supposed to be tested we generate 2 sets of 10Gbyte files. One is of 100,000 files of 100kbyte size, and the other is 1.000 files of 10MByte size.
$ cd $docroot
$ mkdir -p seek-bound/100k/
$ cd seek-bound/100k/
$ for i in `seq 1 1000`; do
mkdir -p files-$i;
for j in `seq 1 100`; do
dd if=/dev/zero of=files-$i/$j bs=100k count=1 2> /dev/null;
done;
done
The file-pool is 10 times larger than the available RAM on the server-host. Based on this disk layout we generate the list of URLs for http_load.
$ find ./seek-bound/100k/ | grep 'files.*/.' | sed 's#\./#http://192.168.2.106/#' > http-load.100k.urls
The same commands are executed for the 10MByte files to generate a file-set which check the performance for large files.
hardware
The test-network is made up of:
- Netgear GS108, a 8-port Gigabit Switch
- client:
- OS: WinXP Prof. 64-bit
- CPU: AMD64 X2 (dual core) 4200+
- Network: Intel Pro/1000
- server:
- OS: Linux 2.6.16.21-0.25-default x86_64 (OpenSuse 10.1)
- CPU: AMD64 3000+
- Network: Intel Pro/1000
- Modules: stock, but ip_conntrack is
rmmod
‘ed - Disks: 2 SATA disks as RAID1 via the md-driver
The disks are:
Model Number: ST3160827AS
Serial Number: 5MT02VGJ and 3MT08WDV
Firmware Revision: 3.42
$ cat /proc/mdstat
Personalities : [raid1]
md0 : active raid1 sda2[0] sdb2[1]
155235968 blocks [2/2] [UU]