ab壓力測試

Apache Bench安裝與使用

Apache Bench簡介

ApacheBench 是 Apache 服務器自帶的一個web壓力測試工具,簡稱ab。ab又是一個命令行工具,對發起負載的本機要求很低,根據ab命令能夠建立不少的併發訪問線程,模擬多個訪問者同時對某一URL地址進行訪問,所以能夠用來測試目標服務器的負載壓力。總的來講ab工具小巧簡單,上手學習較快,能夠提供須要的基本性能指標,可是沒有圖形化結果,不能監控。

安裝

windows下安裝

下載地址:https://www.apachelounge.com/...web

以管理員身份運行cmd,命令行進入到Apache的bin目錄,輸入 httpd -k install 完成安裝。在apache的bin目錄下測試。apache

#### 修改Apache 端口windows

​ 若是是windows部署,多數狀況下80端口已經被iis佔用了,這時候須要修改conf/httpd.conf 找到listen 80 改成你要設置的端口,如: 8090api

Ubuntu下安裝

sudo apt-get install apache2-utils

Apache Bench使用

格式:ab [options] [http://]hostname[:port]/path
參數不少,通常咱們用 -c 和 -n 參數就能夠了
ab -n 1000 -c 100 https://www.baidu.com/  #注意這裏最後的斜槓必定要加

-n 表示測試請求數目
-c 表示併發度
-t timelimit  測試時間限制,單位秒
-s timeout    每一個請求時間限制,單位秒 
-v verbosity  日誌輸出級別,能夠選擇1, 2等,調試使用 
-T content-type  POST/PUT接口的content-type 
-p postfile      POST請求發送的數據文件

結果分析

Concurrency Level: 1000 併發度
Time taken for tests: 1.190 seconds 總時間, 處理1000個併發請求總共花了1.19秒,
Complete requests: 1000 完成的請求數量
Failed requests: 0 失敗次數
Write errors: 0 Non-2xx
responses: 1000 響應了1000次
Total transferred: 164000 bytes 總共傳輸了多少流量 HTML
transferred: 0 bytes 傳遞了多少字節
Requests per second: 840.58 [#/sec] (mean) QPS, 每秒完成的請求數目 , 是系統最重要的指標
Time per request: 1189.651 [ms] (mean) 每組請求用時
Time per request: 1.190 [ms] (mean, across all concurrent requests) 每一個請求實際運行時間的平均值 ms是毫秒
Transfer rate: 134.62 [Kbytes/sec] received 傳輸速率 能夠幫助排除是否存在網絡流量過大致使響應時間延長的問題

測試POST請求

​ 以x-www-form-urlencoded形式發送服務器

ab -n 1000 -c 100 -p post.txt -T 'application/x-www-form-urlencoded' http://www.test.com/test/api

注: post.txt文件內容: name=hello,world網絡

以multipart/form-data形式發送併發

ab -n 1000 -c 100 -p post.txt -T 'multipart/form-data; boundary=--WebKitFormBoundaryE19zNvXGzXaLvS5C' http://www.test.com/test/api

總結

吞吐率(Requests per second),縮寫RPS,是服務器併發處理能力的量化描述,單位是reqs/s,指的是某個併發用戶數下單位時間內處理的請求數。某個併發用戶數下單位時間內能處理的最大的請求數,稱之爲最大吞吐率。app

性能測試獲得的最重要的指標就是QPS(Query per second),每秒查詢率,qps至關於最大吞吐率。反映了接口的併發承受能力,也就是系統的峯值性能。若是對接口的調用超過了這一限制,就要考慮提高硬件或者作一些優化了。工具

相關文章
相關標籤/搜索