今天在CentOS 6.3下做了Siege工具的压力测试,主要是测试一下Siege工具的使用。
我的环境如下:
操作系统:CentOS 6.3
开发环境:Nginx1.0 + PHP5.3 + php-fpm(nginx开启2个worker进程,php-fpm最大开启30个worker进程)
硬件环境:1G内存 + i5英特尔4核CPU
1:安装Siege
>wget http://www.joedog.org/pub/siege/siege-2.70.tar.gz >tar zxf siege-2.70.tar.gz >cd siege-2.70/ >./configure >make && make install
2:安装成功后,通过whereis siege命令查看siege安装的路径得知,siege帮我们安装了如下重要的文件(系统不一样可能路径不一样):
/usr/local/var/siege.log:测试记录,每一次测试的结果都存在该文件中
/usr/local/bin/siege.config:siege的核心配置文件
/usr/local/bin/siege:siege可执行文件
/usr/local/etc/urls.txt:siege在运行时从urls.txt文件中获得需要测试的url地址
3:本次测试用到了gearman(参见我的博客:Gearman中文手册技术文档分享chm)来分配异步任务,所以每一个请求都会以异步的形式发送到gearman处理,我这里启动了一个gearman job进程,启动了10个worker进程,每一个worker进程在接到任务时都做了0.5秒的耗时操作,每一个client.php文件以异步的方式将任务发送到gearman同时也进行了0.5秒的耗时操作,worker.php和client.php都比较简单,这里不再给出。
4:我在/usr/local/etc/urls.txt文件中加了一个网址:http://localhost/client.php,我要测试的就是这个网址。
5:执行测试:
>siege -c 100 -r 1000 #-c参数代表模拟有n个用户在同时访问,-r参数代表重复运行测试n次,不能与-t同时存在 #我这里运行了很久,10万次请求,哈哈,运行了结束后显示结果如下 Transactions: 100000 hits #完成30000次处理 Availability: 100.00 % #100.00 % 成功率 Elapsed time: 1693.72 secs #总共使用时间 Data transferred: 0.38 MB #共数据传输0.38MB Response time: 1.18 secs #响应时间,显示网络连接的速度 Transaction rate: 59.04 trans/sec #平均每秒完成59.04次处理 Throughput: 0.00 MB/sec #平均每秒传送数据 Concurrency: 69.39 #实际最高并发连接数 Successful transactions: 100000 #成功处理次数 Failed transactions: 0 #失败处理次数 Longest transaction: 4.73 #每次传输所花最长时间 Shortest transaction: 0.50 #每次传输所花最短时间
6:也可以查看siege的日志文件:
>cat /usr/local/var/siege.log