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/local/src

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

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

./configure --prefix=/usr/local/apache2.4 --enable-shared=max --enable-module=rewirte --enable-module=so
yum groupinstall “Development Tools”

执行完毕

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

which ab 查看安装位置

which ab

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

yum -y install httpd-tools

查看安装是否成功

ab -V   

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

官方 ab 参考文档及参数说明

测试命令

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

分析数据:

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 多。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏懒人开发

bpkg工具

最近接手一个项目 本来是jenkinsfile相关, 但是由于这里很多实现都是用的shell 并且还是用的 bpkg 做的管理, 再在bpkg基础上, 写了...

19230
来自专栏石奈子的Java之路

原 Intellij IDEA必要条件

17050
来自专栏有困难要上,没有困难创造困难也要上!

Mac上启动Apache服务

33440
来自专栏陈树义

如何在IntelJ下用Maven创建一个Web项目

相信一开始做Web项目的同学都是直接把项目包放在WEB-INF/lib目录下,然后就开始做项目了。但是之后接触了一些使用了Maven进行包管理的项目,我们就不得...

28160
来自专栏为数不多的Android技巧

react-native环境搭建的正确姿势

上个月Facebook开源了Android版的react-native,react-native为何物就不多介绍,个人认为虽然取代不了native,但是确实有可...

13710
来自专栏菩提树下的杨过

dubbox 的各种管理和监管

dubbo官方自带了dubbo-admin及dubbo-simple/dubbo-monitor-simple二个子项目用于服务治理及服务监控。  一、dubb...

343100
来自专栏技术支持log

新购腾讯云 coreOS 系统服务器一段时间后无法登陆原因

问题现象: 新购coreOS刚开始可以正常远程登陆,但是过一段时间后就无法远程登陆了,如果有留意会发现在登陆系统10分钟左右后窗口会弹出下列信息,通知了系统会...

33010
来自专栏晓晨的专栏

Jenkins持续集成演示

16570
来自专栏散尽浮华

针对负载均衡集群中的session解决方案的总结

在日常运维工作中,当给Web站点使用负载均衡之后,必须面临的一个重要问题就是Session的处理办法,无论是PHP、Python、Ruby还是Java语言环境,...

237110
来自专栏Snova云数仓

Greenplum的HA实践

GP集群的 Primary MasterA节点部署一个备份节点,即Slava Master B节点。

99360

扫码关注云+社区

领取腾讯云代金券