$ yum -y install epel-release.noarch
安装HTTPD-Tools$ yum -y install httpd-tools
AB命令详解语法: 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等(图片来源网络,侵删)
0 评论