运行环境
系统版本:CentOS Linux release 7.3.1611 (Core)
软件版本:httpd-tools-2.4.6
硬件要求:无
安装过程
1、安装YUM-EPEL源
HTTP-Tools软件包由YUM-EPEL源提供。
[root@localhost ~]# yum -y install epel-release.noarch
2、安装HTTPD-Tools
[root@localhost ~]# yum -y install httpd-tools
3、调整系统限制
系统默认情况下允许一个进程同时打开的文件描述符数量是1024,若我们需要进行超过1024并发测试的话,可能需要调高此值,客户端和服务端都需要调整。
[root@localhost ~]# ulimit -n 65535 => 设置进程并发文件数(当前生效)
[root@localhost ~]# vim /etc/security/limits.conf => 设置进程并发文件数(永久生效)
# 用户 软硬限制 限制类型 值
root soft nofile 65535
root hard nofile 65535
* soft nofile 65535
* hard nofile 65535
# * 表示所有用户。
# soft 软限制,当用户使用超出设定值系统会发出告警。
# hard 硬限制,绝对限制,用户使用绝对不能超出设置的值。
# nofile 限制类型,进程可同时打开的并发文件描述符数量。
[root@localhost ~]# ulimit -n
65535
2、开始测试
我们在进行压力测试的时候应合理的从小到大一段一段测试WEB服务器负载,并通过压力测试了解WEB服务器的资源瓶颈,根据业务需求合理的采购服务器。
[root@localhost ~]# ab -n 1000 -c 100 -s 30 http://www.szaybc.com/
# -n 设置请求总数量。
# -c 设置并发请求数量。
# -s 设置请求超时时间。
This is ApacheBench, Version 2.3 <$Revision: 1430300 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/
Benchmarking www.szaybc.com (be patient)
开始基准测试(请耐心等待)
Completed 100 requests 完成100个请求
Completed 200 requests 完成200个请求
Completed 300 requests 完成300个请求
Completed 400 requests 完成400个请求
Completed 500 requests 完成500个请求
Completed 600 requests 完成600个请求
Completed 700 requests 完成700个请求
Completed 800 requests 完成800个请求
Completed 900 requests 完成900个请求
Completed 1000 requests 完成1000个请求
Finished 1000 requests 完成了1000个请求
Server Software: nginx/1.13.1 服务器软件
Server Hostname: www.szaybc.com 服务器主机名
Server Port: 80 服务器端口
Document Path: / 文件路径
Document Length: 65732 bytes 文件长度(大小)
Concurrency Level: 100 并发级别(数量),并发用户数量
Time taken for tests: 5.713 seconds 测试时间,完成所有请求所花费的时间
Complete requests: 1000 完成请求数
Failed requests: 0 失败请求数
Write errors: 0 写入错误
Total transferred: 65969000 bytes 总传输数据大小
HTML transferred: 65732000 bytes 总传输HTML数据大小
Requests per second: 175.04 [#/sec] (mean)
吞吐率,每秒能完成请求处理的数量。计算:吞吐率=完成请求数/测试时间
Time per request: 571.302 [ms] (mean)
所有并发用户都请求一次的等待时间(平均值),单位为毫秒。计算:测试时间/(完成请求数/并发用户数量)
Time per request: 5.713 [ms] (mean, across all concurrent requests)
单个用户请求一次的等待时间(平均值),单位为毫秒。计算:所有并发用户都请求一次的等待时间/并发用户数量
Transfer rate: 11276.50 [Kbytes/sec] received
接受响应数据的传输速率,单位KB/S。计算:传输速率=总传输数据大小/测试时间
Connection Times (ms)
连接时间(毫秒)
min mean[+/-sd] median max 最小值 平均值 标准差 中间值 最大值
Connect: 1 33 14.9 29 108 网络连接时间:
Processing: 14 530 35.7 539 603 系统处理时间:
Waiting: 2 43 16.6 42 129 等待时间:
Total: 15 563 32.0 566 650 请求完成总时间:
Percentage of the requests served within a certain time (ms)
按完成请求的百分比,得出完成请求中花费时间最长的那一个请求的时间,也就是这些请求完成时间的最大值,单位为毫秒
50% 566 50%请求完成时间的最大值是566毫秒
66% 569 66%请求完成时间的最大值是569毫秒
75% 570 75%请求完成时间的最大值是570毫秒
80% 571 80%请求完成时间的最大值是571毫秒
90% 578 90%请求完成时间的最大值是578毫秒
95% 625 95%请求完成时间的最大值是625毫秒
98% 626 98%请求完成时间的最大值是626毫秒
99% 627 99%请求完成时间的最大值是627毫秒
100% 650 (longest request) 100%请求完成时间的最大值是650毫秒(最长请求)