« 上一篇下一篇 »

如何进行网站压力测试?香港服务器安装Apache Bench进行网站压力测试

    网站上线前往往需要做一些压力测试,防止高并发场景时服务器挂掉。压力测试工具有不少,但是最简单的应该算是Apache附带的Apache Benchmark(下面简称AB)了,这里我就对AB的安装使用以及分析做一个简单的介绍。

  ApacheBench (简称ab)是一个指令列程式,可用于网站压力测试。如果已经安装过Apache,会自带ab工具,如果香港服务器不想安装Apache,又想使用ab命令的可通过下面的方法单独安装ApacheBench

  安装

  #安装相关依赖

  yum -y install apr-util

  yum -y install yum-utils

  #创建临时目录

  mkdir abtmp && cd abtmp

  #安装

  yumdownloader httpd-tools*

  rpm2cpio httpd-tools-*.rpm |cpio -idmv

  #拷贝

  cp usr/bin/ab /usr/bin

  输入上面的命令,一行一个,不出意外的情况下输入ab -V就能查看到相关信息了,如下截图。

  网站压力测试

  输入命令ab -n 1000 -c 50 https://www.baidu.com/进行测在线网页服务器试,这句话的意思是对www.baidu.com发起1000个请求,并发数为50,常用的参数基本就下面两个:

  -n:指定测试会话使用的请求数;

  -c:指定一次向服务器发出请求数;

  如果需要查看更多的参数说明,请访问:ab命令

  通过日志分析,发现刚刚ab命令发送了大量请求过来,如下截图,相当于网站正在遭受小规模的CC攻击。

命令参数解释
安装好之后直接使用如下命令即可简单测试:

ab http://hi.ktsee.com/
当然每个测试的场景不同,这些必要的参数还是需要设置的:

-n参数用来设置模拟请求的总次数
-c参数用来设置模拟请求的并发数
-t参数用来设置模拟请求的时间
简单举例,如果要模拟1个用户访问1000次:

ab -n 1000 http://hi.ktsee.com/
如果要模拟500个用户访问1000次(表示每个用户访问2次)

ab -c 500 -n 1000 http://hi.ktsee.com/
如果要模拟500个用户同时访问,并且每个用户访问停留时间10秒:

ab -c 500 -t 10 http://hi.ktsee.com/
以上是常用的参数,其他参数如下,可以根据实际测试场景使用:

-A 采用base64编码向服务器提供身份验证信息,用法: -A 用户名:密码
-C cookie信息,用法: -C key=value
-d 不显示pecentiles served table
-e 保存基准测试结果为csv格式的文件
-g 保存基准测试结果为gunplot或TSV格式的文件
-h 显示ab可选参数列表
-H 采用字段值的方式发送头信息和请求
-i 发送HEAD请求,默认发送GET请求
-k 设置ab命令允许1个http会话响应多个请求
-p 通过POST发送数据,用法: -p page=1&key=value
-P 采用base64编码向服务器提供身份验证信息,用法: -A 用户名:密码
-q 执行多余100个请求时隐藏掉进度输出
-s 使用Https协议发送请求,默认使用Http
-S 隐藏中位数和标准偏差值
-v -v 2 及以上将打印警告和信息,-v 3 打印http响应码,-v 4 打印头信息
-V 显示ab工具的版本号
-w 采用HTML表格打印结果
-x HTML标签属性,使用 -w 参数时,将放置在<table>标签中
-X 设置代理服务器,用法 -X 192.168.1.1:80
-y HTML标签属性,使用 -w 参数时,将放置在<tr>标签中
-z HTML标签属性,使用 -w 参数时,将放置在<td>标签中

  总结

  ApacheBench可用户网站压力测试,亦可用于发起CC攻击,请不要滥用哦。