運行環境
系統版本: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毫秒(最長請求)