apache-ab 并发负载压力测试

网站性能压力测试是服务器网站性能调优过程中必不可缺少的一环。只有让服务器处在高压情况下,才能真正体现出软件、硬件等各种设置不当所暴露出的问题。

性能测试工具目前最常见的有以下几种:ab、http_load、webbench、siege

ab是apache自带的压力测试工具。ab非常实用,它不仅可以对apache服务器进行网站访问压力测试,也可以对或其它类型的服务器进行压力测试。比如nginx、tomcat、IIS等。

一、ab 的原理(apachebench命令的缩写)

ab命令会创建多个并发访问线程,模拟多个访问者同时对某一URL地址进行访问。它的测试目标是基于URL的,因此,它既可以用来测试apache的负载压力,也可以测试nginx、lighthttp、tomcat、IIS等其它Web服务器的压力

ab命令对发出负载的计算机要求很低,它既不会占用很高CPU,也不会占用很多内存。但却会给目标服务器造成巨大的负载,其原理类似CC攻击。自己测试使用也需要注意,否则一次上太多的负载。可能造成目标服务器资源耗完,严重时甚至导致死机

二、安装(以 Linux 环境为例 )

①源码安装
②apache 通过 yum 的 RPM 包方式安装 默认存放在 /usr/bin

1) /opt下面解压:httpd-2.2.29.tar.gz
2) /opt下进入httpd-2.2.29文件夹:cd httpd-2.2.29
3) 安装

在 /usr/local/web/apache 目录下安装Apache执行以下命令

./configure  --prefix=/usr/local/web/apache --enable-shared=max  --enable-module=rewirte  --enable-module=so

由于版本问题出现以上错误。(Elsa 本人64 位机器出现此问题)

解决方案:

Redhat系列(包括 fedroa, centos)用命令
yum groupinstall “Development Tools”
Debian系列(包括 ubuntu) 用命令
aptitude install build-essential

本人使用的是centOs 执行 yum groupinstall “Development Tools” 命令 ,之后再重新执行

 1. ./configure --prefix=/usr/local/web/apache --enable-shared=max --enable-module=rewirte --enable-module=so

apache-ab 并发负载压力测试_第1张图片

执行完毕

 2. 执行 make 命令编译
 3. 执行 make install   安装

which ab 查看安装位置

which ab

③ 不想安装Apache 但是想使用 ab 命令时可以直接安装 Apache 的工具包 http-tools

yum -y install httpd-tools

查看安装是否成功

ab -V   

安装成功则会显示版本信息

window 安装
目前apache最新版2.4.10,apache官网已经没有windows下载的版本。但是我们可以下载apache官网提供的集成软件包

[下载地址](http://apache.fayea.com/httpd/binaries/win32/)

apache-ab 并发负载压力测试_第2张图片

三、参数说明

ab 参考文档及参数说明

http://httpd.apache.org/docs/2.2/programs/ab.html

测试命令

ab [ -A auth-username:password ] [ -b windowsize ] [ -c concurrency ] [ -C cookie-name=value ] [ -d ] [ -e csv-file ] [ -f protocol ] [ -g gnuplot-file ] [ -h ] [ -H custom-header ] [ -i ] [ -k ] [ -n requests ] [ -p POST-file ] [ -P proxy-auth-username:password ] [ -q ] [ -r ] [ -s ] [ -S ] [ -t timelimit ] [ -T content-type ] [ -u PUT-file ] [ -v verbosity] [ -V ] [ -w ] [ -x <table>-attributes ] [ -X proxy[:port] ] [ -y <tr>-attributes ] [ -z <td>-attributes ] [ -Z ciphersuite ] [http[s]://]hostname[:port]/path

说明:
-c concurrency 并发量
-n requests 请求数

通常使用最多的参数 -n -c

四、ab 性能指标

在进行性能测试过程中有几个指标比较重要

1、吞吐率(Requests per second)
2、并发连接数(The number of concurrent connections)
3、并发用户数(Concurrency Level)
4、用户平均请求等待时间(Time per request)
5、服务器平均请求等待时间(Time per request:across all concurrent requests)

五、ab的应用

ab 在 Linux 系统中压力测试安装完事之后,直接可以测试其他任意的网站

ab -n10000 -c1000 https://101.201.142.142:443**/**

请求后面可以不添加端口号使用默认,当手动写入时:http -80 https - 443

apache-ab 并发负载压力测试_第3张图片

apache-ab 并发负载压力测试_第4张图片

分析数据

Requests per second: 3684.48 [#/sec] (mean)
Requests per second: 4443.88 [#/sec] (mean)
Requests per second: 4103.85 [#/sec] (mean)
APR配置之后
Requests per second: 2079.95 [#/sec] (mean)
Requests per second: 5474.69 [#/sec] (mean) 吞吐量。每秒请求数可以冲刺到 5k 多

测试中最尾部一定要有一个“/”,否则出现以下错误
ab 压测至少是10次
tomcat 是 servlet 容器,servlet 第一次编译成jsp 文件比较慢,但是第二次访问不需要再次编译,所以第一次不算数

六、测试nginx性能
参考
http://www.jb51.net/article/59469.htm

七、扩展(创建虚拟主机)
http://www.jb51.net/article/59469.htm 参考

cat /etc/httpd/conf/httpd.conf|grep -v ^#|grep -v ^$
mkdir -p /www/a.lxy.com
echo ' phpinfo();?>'>/www/a.lxy.com/index.php
cat /www/a.lxy.com/index.php

虚拟主机新建完毕后,我们来启动apache,并访问虚拟主机 http://a.lxy.com/index.php。

你可能感兴趣的:(APP-server)