声明
1、目前我对"压力测试"和"负载测试"这两个概念的区别还不清楚,所以使用"并发测试"一词代替
2、演示分别使用ab和webbench对phpinfo()的页面进行100并发持续5秒钟测试
ab工具使用
首先来看一下最受欢迎的、随apache一起打包发布的ab,使用简单方便。
ab是Apache Benchmark的缩写,是Apache组织开发的一款web压力测试工具。它随Apache服务器一起打包发布,优点是使用方便,统计功能强大。
ab安装
yum -y install httpd-tools
ab常用参数
- -n: 总请求个数
- -c: 并发数
- -t: 测试持续时间(秒)
- -p: POST数据文件
- -T: Content-Type头信息
ab测试示例
ab -n 100 -c 10 http://your_url/
上述命令表示:一共发送100次请求,一次发送10次(并发量为10)。
测试结果较为详细,除了几项主要数据外还包含很多项参考数据,包括请求速率、传输速率、连接时间统计等。
webbench工具使用
接下来看下使用起来更为简单易懂的webbench。
webbench简介
webbench是Linux下的一个网站压力测试工具,最多可以模拟3万个并发连接去测试网站的负载能力。返回数据比Apache自带的ab压力测试少,但返回结果清晰,安装使用也特别方便。
webbench安装
wget http://home.tiscali.cz/~cz210552/distfiles/webbench-1.5.tar.gz
tar zxvf webbench-1.5.tar.gz
cd webbench-1.5
make && make install
webbench常用参数
- -c: 并发数
- -t: 运行测试时间(秒)
webbench测试示例
webbench -c 100 -t 5 http://your_url/
测试结果与ab相比要简单了许多,只包含了几个主要数据,如请求成功数、失败数、每秒请求数等。
工具对比
| 特性 | ab | webbench |
|---|---|---|
| 安装方式 | 随Apache打包 | 需单独编译安装 |
| 测试结果详细程度 | 详细,包含多项参考数据 | 简洁,主要数据 |
| 并发能力 | 一般 | 最多3万并发 |
| 使用复杂度 | 简单 | 非常简单 |
| 适用场景 | 需要详细统计的测试 | 快速简单的压力测试 |
Linux大并发测试需要的系统修改
在进行高并发测试时,可能需要修改Linux系统的一些限制:
修改用户进程可打开文件数限制
在Linux平台上,无论编写客户端程序还是服务端程序,在进行高并发TCP连接处理时,最高的并发数量都要受到系统对用户单一进程同时可打开文件数量的限制。
# 查看当前限制
ulimit -n
# 临时修改
ulimit -n 100000
# 永久修改 /etc/security/limits.conf
* soft nofile 65535
* hard nofile 65535
其他压力测试工具简介
http_load
程序非常小,解压后也不到100K。http_load以并行复用的方式运行,用以测试web服务器的吞吐量与负载。它可以以一个单一的进程运行,一般不会把服务端的负载测试转化为高负载Web请求来耗费服务端的资源。
Siege
一款开源的压力测试工具,可以根据配置对一个WEB站点进行多用户的并发访问,记录每个用户所有请求过程的相应时间,并在一定时间内重复使用。支持HTTP/HTTPS协议,可以模拟多个并发用户同时访问服务器,支持POST、GET、COOKIE等。
总结
ab和webbench都是Linux下非常实用的并发测试工具。ab随Apache安装,统计结果详细,适合需要详细分析的场景;webbench安装简单,使用方便,适合快速测试。根据实际需求选择合适的工具即可。

发表评论 取消回复