基准测试
2007年2月2日
在文章 lighty 1.5.0 和 linux-aio 中,我们提出了一套基准测试套件,用于测量磁盘I/O密集型应用程序的性能。
http_load
作为负载生成器,我们使用 http_load,因为它
- 允许从URL列表中随机获取
- 允许大量并行请求
- 具有可移植性
在命令行中,我们希望这样执行它:
$ ./http_load -verbose -parallel 100 -fetches 10000 urls
文件池
在待测机器上,我们生成了两组10GB的文件。一组是100,000个100KB的文件,另一组是1,000个10MB的文件。
$ 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
文件池的大小是服务器主机可用RAM的10倍。基于这种磁盘布局,我们为http_load生成了URL列表。
$ find ./seek-bound/100k/ | grep 'files.*/.' | sed 's#\./#http://192.168.2.106/#' > http-load.100k.urls
对10MB文件执行相同的命令,以生成一个文件集,用于检查大文件的性能。
硬件
测试网络由以下设备组成:
- 网件 GS108,一台8端口千兆交换机
- 客户端
- 操作系统:Windows XP 专业版 64位
- CPU:AMD64 X2 (双核) 4200+
- 网卡:英特尔 Pro/1000
- 服务器
- 操作系统:Linux 2.6.16.21-0.25-default x86_64 (OpenSuse 10.1)
- CPU:AMD64 3000+
- 网卡:英特尔 Pro/1000
- 模块:默认,但ip_conntrack已
rmmod
- 磁盘:2块SATA磁盘通过md驱动器组成RAID1
磁盘是
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]