使用说明测试工具性能AB(服务器时间测试用户数用户)「服务器测试用例」

前言在学习ab工具之前,我们需了解几个关于压力测试的概念吞吐率(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是Apache自带的压力测试工具
ab命令会创建很多的并发访问线程,模拟多个访问者同时对某一URL地址进行访问
它的测试目标是基于URL的,因此,既可以用来测试Apache的负载压力,也可以测试nginx、lighthttp、tomcat、IIS等其它Web服务器的压力
ab命令对发出负载的计算机要求很低,既不会占用很高CPU,也不会占用很多内存,但却会给目标服务器造成巨大的负载,其原理类似CC攻击
自己测试使用也须注意,否则一次上太多的负载,可能造成目标服务器因资源耗完,严重时甚至导致死机安装AB是一条命令,集成在了HTTPD-Tools工具中
系统版本:CentOS Linux release 7.3.1611 (Core)软件版本:httpd-tools-2.4.6硬件要求:无安装YUM-EPEL源$ yum -y install epel-release.noarch安装HTTPD-Tools$ yum -y install httpd-toolsAB命令详解语法: ab [选项] 访问地址选项: -n requests 要执行的请求总数
-c concurrency 一次发出多个请求的数量
-t timelimit 设置测试的最大时长,单位为秒
-s timeout 设置响应超时时间,单位为秒,默认为30秒
-b windowsize 设置TCP发送/接受缓冲区的大小,单位为字节
-B address 当有多张网卡时,设置进行传出连接时绑定的网卡地址
-p postfile 设置POST请求包含的数据文件
需要与"-T"选项一起连用
-u putfile 设置PUT请求所包含的数据文件
需要与"-T"选项一起连用
-T content-type 设置POST/PUT请求时指定的数据MIME类型的头部信息,默认值为"text/plain"
-w 以HTML网页的方式显示结果
-i 使用HEAD方法请求而不是GET方法
-C attribute 添加cookie,例如:'Apache=1234'
-H attribute 添加任意标头,例如:'Accept-Encoding:gzip',在所有正常标题行之后插入此信息
-A attribute 添加基本的网络身份验证,属性是以冒号分割的用户名和密码
-P attribute 添加基本的代理身份验证,属性是以冒号分割的用户名和密码
-X proxy:port 设置要使用的代理服务器地址和端口
-V 显示软件版本号并退出
-k 使用HTTP Keepalive保持长连接功能
-d 不显示百分比报告信息
-S 不显示置信度估算值和警告信息
-q 执行超过150个请求不要显示进度
-g filename 将收集到的数据输出到Gnuplot格式的文件中
-e filename 将收集到的数据输出到已提供百分比的CSV文件中
-r 在接受到套接字错误不会退出
-h 显示使用信息
-Z ciphersuite 设置SSL/TLS密码套件(请参阅OpenSSL)
-f protocol 设置支持的SSL/TLS协议(SSL3, TLS1, TLS1.1, TLS1.2 or ALL)
开始测试我们在进行压力测试的时候应合理的从小到大一段一段测试WEB服务器负载,并通过压力测试了解WEB服务器的资源瓶颈,根据业务需求合理的采购服务器
调整系统限制系统默认情况下允许一个进程同时打开的文件描述符数量是1024,若我们需要进行超过1024并发测试的话,可能需要调高此值,客户端和服务端都需要调整
$ ulimit -n 65535 => 设置进程并发文件数(当前生效)$ vim /etc/security/limits.conf => 设置进程并发文件数(永久生效)# 用户 软硬限制 限制类型 值root soft nofile 65535root hard nofile 65535 soft nofile 65535 hard nofile 65535# 表示所有用户
# soft 软限制,当用户使用超出设定值系统会发出告警
# hard 硬限制,绝对限制,用户使用绝对不能超出设置的值
# nofile 限制类型,进程可同时打开的并发文件描述符数量
$ ulimit -n 65535
输入命令$ ab -n 100 -c 10 ab -n 100 -c 10 https://www.baidu.com/其中-n表示请求数,-c表示并发数测试结果分析This is ApacheBench, Version 2.3 <$Revision: 1826891 $>Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/Licensed to The Apache Software Foundation, http://www.apache.org/Benchmarking www.baidu.com (be patient).....done// 请求返回header类型,可能是nginx、apache、IIs等Server Software: BWS/1.1 // 请求ip或者域名Server Hostname: www.baidu.com// 请求端口,当前请求为https所以端口为443,请求https端口80Server Port: 443// https端口协议SSL/TLS Protocol: TLSv1.2,ECDHE-RSA-AES128-GCM-SHA256,2048,128TLS Server Name: www.baidu.com// 路径Document Path: /// 第一个成功返回的文档的字节大小Document Length: 227 bytes// 并发数


Concurrency Level: 10// 从建立连接到最后接受完成总时间Time taken for tests: 0.818 seconds// 总请求数成功的Complete requests: 100// 失败的Failed requests: 0// 从服务器接收的字节总数Total transferred: 89300 bytes// HTML接收字节数HTML transferred: 22700 bytes// 每秒请求数(总请求数/总时间)Requests per second: 122.26 [#/sec] (mean)// 用户平均请求等待时间=concurrency timetaken 1000 / doneTime per request: 81.793 [ms] (mean)// 服务器处理每个请求平均响应时间=timetaken 1000 / doneTime per request: 8.179 [ms] (mean, across all concurrent requests)Transfer rate: 106.62 [Kbytes/sec] received// 网络连接情况Connection Times (ms) min mean[+/-sd] median maxConnect: 27 45 20.7 40 159Processing: 7 17 9.5 15 89Waiting: 7 15 8.8 13 89Total: 40 61 23.2 55 179// 整体响应时间的分布比Percentage of the requests served within a certain time (ms) 50% 55 66% 59 75% 63 80% 65 90% 73 95% 122 98% 174 99% 179 100% 179 (longest request)
总结总的来说ab工具ab小巧简单,上手学习较快,可以提供需要的基本性能指标,但是没有图形化结果,不能监控
因此ab工具可以用作临时紧急任务和简单测试
同类型的压力测试工具还有:webbench、siege、http_load等
使用说明测试工具性能AB(服务器时间测试用户数用户)
(图片来源网络,侵删)

联系我们

在线咨询:点击这里给我发消息