首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

Apache ab 壓力測試工具完整使用指南:參數詳解與結果分析

     編輯:MySQL 資料庫相關知識

ab (ApacheBench) 是 Apache 附帶的 HTTP 效能測試工具,可快速評估 Web 伺服器吞吐量、回應時間、併發處理能力。

基本語法

ab [選項] 目標URL

常用參數

參數說明範例
-n總請求數-n 1000
-c併發連線數-c 10
-t測試時間上限(秒)-t 60
-k啟用 KeepAlive-k
-H自訂 Header-H "Authorization: Bearer xxx"
-pPOST 資料檔案-p post_data.json
-TContent-Type-T "application/json"
-v詳細程度(1-4)-v 2

實戰範例

# 基礎測試:1000 請求,10 併發
ab -n 1000 -c 10 https://localhost:81/t.php

# 高併發測試:10000 請求,100 併發,KeepAlive
ab -n 10000 -c 100 -k https://127.0.0.1/index.html

關鍵指標解讀

ab 測試結果範例

指標含義關注重點
Concurrency Level實際併發數驗證 -c 設定是否生效
Time taken for tests總耗時越短越好
Complete requests成功完成請求數應等於 -n
Failed requests失敗請求數應為 0,非零需排查
Requests per second (RPS)吞吐率 = Complete / Time核心效能指標,越高越好
Time per request平均請求延遲(含併發)單一使用者感知延遲
Time per request (mean)平均請求延遲(跨所有併發)系統整體處理速度
Transfer rate網路傳輸頻寬利用率單位時間傳輸資料量

進階分析技巧

  1. 百分位數延遲:搭配 -g 輸出 TSV,匯入 Excel/Python 繪製 P50/P95/P99 延遲分佈
  2. 錯誤分類:Failed requests 分為連線失敗、讀取逾時、HTTP 非 2xx、內容長度不符,需分別排查
  3. 預熱與穩態:先跑 30 秒預熱,再正式測試,避免 JIT 編譯、連線池建立干擾
  4. 資源監控:測試同時監控 CPU、記憶體、網路、磁碟 I/O、MySQL 執行緒,找出瓶頸

常見誤區

  • 單機 ab 受限於客戶端資源,高併發時客戶端本身成為瓶頸 → 改用分散式壓測工具
  • 測試靜態檔案 vs 動態 API 結果差異巨大,必須針對真實業務場景測試
  • 忽略 Failed requests 非零的情況,導致 RPS 虛高
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved