Apache Benchmark
标记 |
描述 |
-A <username>:<password> |
用于提供服务器身份验证信息。 用户名和密码用“:”分隔。 发送的字符串采用base64编码 |
-c <concurrency number> |
一次模拟的请求数。默认情 况下设置为1。数量不得大于n值 |
-C cookie-name=value |
可重复的标记,包含cookie信息 |
-d |
隐藏“percentage served within XX[ms] table” |
标记 |
描述 |
-e |
要创建的.csv文件的路径。该文件包 含运行的基准测试的结果,该结果分为 两列,即Percentage和Time in ms。建议 采用“gnuplot”文件 |
-g |
要创建的“gnuplot”或TSV文件的路径。 基准测试的输出将保存到该文件中 |
-h |
显示要用于ab的选项列表 |
-H custom-header |
采用字段值对形式发送有效标头和请求 |
-i |
执行HEAD请求,而不是默认的GET请求 |
-k |
启用Keep-Alive功能。允许通过一个 HTTP会话满足多个请求。默认情况下, 该功能处于禁用状态 |
-n requests |
要执行的请求总数 |
-p POST-file |
包含用于HTTP POST请求的数据的 文件路径。内容应该包含由&分隔的键=值对 |
-P username:password |
采用Base64编码的字符串。字符串包含 基本身份验证,以及由“:”分隔的用户名和密码 |
-q |
执行多于100个请求时隐藏进度输出 |
-s |
使用https协议,而非默认的http协议 ——不建议这样做 |
-S |
隐藏中位数和标准偏差值 |
-t timelimit |
指定了这个值以后,基准测试的时间 不会超过指定的值。默认情况下无时间限制 |
-v verbosity-level |
数值为2及以上将打印警告和信息; 为3将打印HTTP响应代码;4及以 上将打印标头信息 |
-V |
显示ab工具的版本号 |
-w |
采用HTML表格打印结果 |
-x <table-attributes> |
表示HTML属性的字符串, 使用–w时将放置在<table>标记中 |
-X proxy[:port] |
指定要使用的代理服务器。 代理端口是可选的 |
-y <tr-attributes> |
表示HTML属性的字符串, 使用–w时将放置在<tr>标记中 |
-z <td-attributes> |
表示HTML属性的字符串, 使用–w时将放置在<td>标记中 |
字段 |
描述 |
示 例 值 |
Concurrency Level |
所进行的并发请求总数 |
1,2,3,…,n, 其中n为任意数字 |
Time taken for tests |
运行所花费的总时间 |
000.000秒 |
Complete requests |
模拟的请求总数中已 完成的请求总数 |
1,2,3,…,n, 其中n为任意数字 |
字段 |
描述 |
示 例 值 |
Failed requests |
模拟的请求总数 中失败的请求总数 |
1,2,3, …,n, 其中n为任意数字 |
Write errors |
使用写入数据时 遇到的错误总数 |
1,2,3, …,n, 其中n为任意数字 |
Non-2×× responses |
未收到HTTP成功 响应的请求总数(200) |
1,2,3,…,n, 其中n为任意数字 |
Total transferred |
整个模拟的响应中 传输的总数据, 大小包括标头数据 |
725个字节 |
HTML transferred |
整个模拟传输的内容 正文的总大小 |
137 199个字节 |
Requests per second |
每秒支持的请求总数 |
5.68 [#/秒] (平均值) |
Time per request |
满足一个请求需要 花费的总时间 |
176.179毫秒 |
Time per request |
满足所有并发请求 中的一个请求需要 花费的总时间 |
176.179毫秒 |
Transfer rate |
每秒收到的字节总数(KB) |
766.27 [KB/秒] |
Webbench
1. 安装:
1
2
3
4
|
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
|
如报错:执行安装 yum install ctags和yum install gcc,如果有出现没有文件路径错误,执行:mkdir -m 644 -p /usr/local/man/man1
webbench -c 1000 -t 10 http://www.qq.com/index.php
-c是并发数 -t是运行测试时间,即10秒钟内中以每次100个请求进行测试。
这是运行Webbench测试结果,Speed显示的是每分钟响应请求数和每秒钟传输数据量,Requests显示的是成功请求数和失败请求数。
为准确得到服务器的承受压力,测试时并发数可逐渐加大,如并发100时观察一下网站负载是多少、打开页面是否流畅,当网站打开缓慢时并发是多少、网站打不开时并发又是多少。
Tsung
1
|
yum -y
install
erlang perl perl-RRD-Simple.noarch perl-Log-Log4perl-RRDs.noarch gnuplot perl-Template-Toolkit firefox
|
1
|
wget http:
//tsung
.erlang-projects.org
/dist/tsung-1
.4.2.
tar
.gz
|
1
2
3
|
tar
zxfv tsung-1.4.2.
tar
.gz
cd
tsung-1.4.2
.
/configure
&&
make
&&
make
install
|
1
|
cp
/usr/share/doc/tsung/examples/http_simple
.xml
/root/
.tsung
/tsung
.xml
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
|
<?
xml
version
=
"1.0"
?>
<!DOCTYPE tsung SYSTEM "/usr/share/tsung/tsung-1.0.dtd">
<
tsung
loglevel
=
"notice"
version
=
"1.0"
>
<
clients
>
<
client
host
=
"localhost"
weight
=
"1"
cpu
=
"10"
maxusers
=
"40000"
>
<
ip
value
=
"192.168.122.2"
/>
</
client
>
<
client
host
=
"loadnode1"
weight
=
"1"
cpu
=
"9"
maxusers
=
"40000"
>
<
ip
value
=
"192.168.122.2"
/>
</
client
>
<
client
host
=
"loadnode2"
weight
=
"1"
maxusers
=
"40000"
cpu
=
"8"
>
<
ip
value
=
"192.168.122.3"
/>
</
client
>
<
client
host
=
"loadnode3"
weight
=
"1"
maxusers
=
"40000"
cpu
=
"9"
>
<
ip
value
=
"192.168.122.21"
/>
</
client
>
<
client
host
=
"loadnode4"
weight
=
"1"
maxusers
=
"40000"
cpu
=
"9"
>
<
ip
value
=
"192.168.122.11"
/>
</
client
>
<
client
host
=
"loadnode5"
weight
=
"1"
maxusers
=
"40000"
cpu
=
"9"
>
<
ip
value
=
"192.168.122.12"
/>
</
client
>
<
client
host
=
"loadnode6"
weight
=
"1"
maxusers
=
"40000"
cpu
=
"9"
>
<
ip
value
=
"192.168.122.13"
/>
</
client
>
<
client
host
=
"loadnode7"
weight
=
"1"
maxusers
=
"40000"
cpu
=
"9"
>
<
ip
value
=
"192.168.122.14"
/>
</
client
>
</
clients
>
<
servers
>
<
server
host
=
"192.168.122.10"
port
=
"80"
type
=
"tcp"
/>
</
servers
>
<
load
>
<
arrivalphase
phase
=
"1"
duration
=
"10"
unit
=
"minute"
>
<
users
maxnumber
=
"15000"
arrivalrate
=
"8"
unit
=
"second"
/>
</
arrivalphase
>
<
arrivalphase
phase
=
"2"
duration
=
"10"
unit
=
"minute"
>
<
users
maxnumber
=
"15000"
arrivalrate
=
"8"
unit
=
"second"
/>
</
arrivalphase
>
<
arrivalphase
phase
=
"3"
duration
=
"30"
unit
=
"minute"
>
<
users
maxnumber
=
"20000"
arrivalrate
=
"3"
unit
=
"second"
/>
</
arrivalphase
>
</
load
>
<
sessions
>
<
session
probability
=
"100"
name
=
"ab"
type
=
"ts_http"
>
<
for
from
=
"1"
to
=
"10000000"
var
=
"i"
>
<
request
> <
http
url
=
"/test.txt"
method
=
"GET"
version
=
"1.1"
/> </
request
>
</
for
>
</
session
>
</
sessions
>
</
tsung
>
|
vim ~/.bashrc
alias
treport=
"/usr/lib/tsung/bin/tsung_stats.pl; firefox report.html"
|
1
|
source
~/.bashrc
|
1
2
3
|
[root@loadnode1 ~] tsung start
Starting Tsung
"Log directory is: /root/.tsung/log/20120421-1004"
|
1
2
|
cd
/root/
.tsung
/log/20120421-1004
treport #生成图片报告
|