web版本 开源压测工具_免费压测工具

很多的web应用在搭建服务器完成后,为了让搭建的服务能够满足用户的访问需求,通常需要测试自己应用的并发连接能力。需要使用一些压测工具,本文介绍一些免费的开源的压测工具,可以用于简单的压力测试(实验均在Linux系统下)。

1.ab工具

ab的全称是Apache Bench,是Apache自带的网络压力测试工具,ab命令对发出负载的计算机要求很低,不会占用很高CPU和内存,但也能给目标服务器产生巨大的负载,能实现基础的压力测试。在进行压力测试时,最好与服务器使用交换机直连,以获取最大的网络吞吐量。(云服务器可以选择内网相连)

ab的安装很简单,安装Apache会自动安装,如果要单独安装ab,可以使用yum安装:

yum install httpd-tools –y

基本概念:

• 吞吐率(Requests per second)

概念:服务器并发处理能力的量化描述,单位是reqs/s,指的是某个并发用户数下单位时间内处理的请求数。某个并发用户数下单位时间内能处理的最大请求数,称之为最大吞吐率。

计算公式:总请求数 / 处理完成这些请求数所花费的时间,即

Request per second = Complete requests / Time taken for tests

• 并发连接数(The number of concurrent connections)

概念:某个时刻服务器所接受的请求数目,简单的讲,就是一个会话。

• 并发用户数(The number of concurrent users,Concurrency Level)

概念:要注意区分这个概念和并发连接数之间的区别,一个用户可能同时会产生多个会话,也即连接数。

• 用户平均请求等待时间(Time per request)

计算公式:处理完成所有请求数所花费的时间/ (总请求数 / 并发用户数),即

Time per request = Time taken for tests /( Complete requests / Concurrency Level)

• 服务器平均请求等待时间(Time per request: across all concurrent requests)

计算公式:处理完成所有请求数所花费的时间 / 总请求数,即

Time taken for / testsComplete requests

可以看到,它是吞吐率的倒数。

同时,它也=用户平均请求等待时间/并发用户数,即Time per request / Concurrency Level

ab命令选项 可以使用 ab -–help查看全部的命令参数

ab命令最基本的参数是-n和-c:

-n 执行的请求数量

-c 并发请求个数

其他参数:

-t 测试所进行的最大秒数

-p 包含了需要POST的数据的文件

-T POST数据所使用的Content-type头信息

-k 启用HTTP KeepAlive功能,即在一个HTTP会话中执行多个请求,默认时,不启用KeepAlive功能

ab –n 100 –c 10 http://39.1**.15.233/home/ 测试的自己的网站(100请求,10并发)

网络上消耗的时间的分解:

Connection Times (ms)

min mean[+/-sd] median max

Connect: 2 43 197.3 2 1008

Processing: 11 1174 1506.4 858 13033

Waiting: 10 551 1381.4 220 13026

Total: 12 1218 1489.6 1017 13039

每个请求处理时间的分布情况:

50%的处理时间在1017ms内,66%的处理时间在1441ms内...,重要的是看90%的处理时间。

Percentage of the requests served within a certain time (ms)

50% 1017

66% 1441

75% 1655

80% 1862

90% 2476

95% 3167

98% 3562

99% 13039

100% 13039 (longest request)

在实际测试的时候可以酌情增加连接数和用户数,以得到最接近准确的并发数值。

Webbench

Webbench是知名的网站压力测试工具,能测试处在相同硬件上,不同服务的性能以及不同硬件上同一个服务的运行状况。

webbench的标准测试可以向我们展示服务器的两项内容:每秒钟相应请求数和每秒钟传输数据量。

Webbench最多可以模拟3万个并发连接去测试网站的负载能力

下载安装webbench

wget http://www.ha97.com/code/webbench-1.5.tar.gz

tar -zvxf webbench-1.5.tar.gz

编译安装

查看命令参数提示

测试

webbench -c 50 -t 10 http://39.1..233/home/

模拟五十个用户访问自己的网站10秒,请求的URL 后端如果报错,就加一个“/”。

3.http_load

http_load是一款基于Linux平台的web服务器性能测试工具,用于测试web服务器的吞吐量与负载,web页面的性能。

同样需要下载安装

wget http://www.acme.com/software/http_load/http_load-12mar2006.tar.gz

tar -zvxf http_load-12mar2006.tar.gz

cd http_load-12mar2006

make && make install

查看帮助

使用

创建urls文件,文件里面写要测试的URL

vim urls

使用示例

./http_load -rate 5 -seconds 10 urls

-parallel 简写-p :含义是并发的用户进程数。

-fetches 简写-f :含义是总计的访问次数

-rate 简写-p :含义是每秒的访问频率

-seconds简写-s :含义是总计的访问时间

执行结果:

说明执行了一个持续时间10秒的测试,每秒的频率为5。

49 fetches, 2 max parallel, 289884 bytes, in 10.0148 seconds

5916 mean bytes/connection

4.89274 fetches/sec, 28945.5 bytes/sec

msecs/connect: 28.8932 mean, 44.243 max, 24.488 min

msecs/first-response: 63.5362 mean, 81.624 max, 57.803 min

HTTP response codes:

code 200 -- 49

结果分析:

1.49 fetches, 2 max parallel, 289884 bytes, in 10.0148 seconds

说明在上面的测试中运行了49个请求,最大的并发进程数是2,总计传输的数据是289884bytes,运行的时间是10.0148秒

2.5916 mean bytes/connection

说明每一连接平均传输的数据量289884/49=5916

3.4.89274 fetches/sec, 28945.5 bytes/sec

说明每秒的响应请求为4.89274,每秒传递的数据为28945.5 bytes/sec

4.msecs/connect: 28.8932 mean, 44.243 max, 24.488 min

说明每连接的平均响应时间是28.8932 msecs,最大的响应时间44.243 msecs,最小的响应时间24.488 msecs

5.msecs/first-response: 63.5362 mean, 81.624 max, 57.803 min

6、HTTP response codes: code 200 – 49

说明打开响应页面的类型,如果403的类型过多,那可能要注意是否系统遇到了瓶颈。

特殊说明:这里,我们一般会关注到的指标是fetches/sec、msecs/connect

他们分别对应的常用性能指标参数

Qpt-每秒响应用户数和response time,每连接响应用户时间。

测试的结果主要也是看这两个值。当然仅有这两个指标并不能完成对性能的分析,我们还需要对服务器的cpu、men进行分析,才能得出结论

以上介绍了三种开源免费的压测工具,使用都比较简单,类似的工具还有很多,如siege等,不再一一累述。

如果需要专业的模拟多用户的并发访问的压力测试,可以使用付费产品,如阿里云PTS压力测试。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值