萬盛學電腦網

您现在的位置: 萬盛學電腦網 >> 程式設計 >  >> 資料庫 >> MySQL 教學

Apache ab 壓力測試工具完整使用指南與關鍵指標解讀

ab 簡介

ab (ApacheBench) 是 Apache 附帶的 HTTP 效能基準測試工具,用於測量單位時間內伺服器能處理的請求數(吞吐率)。

基本指令語法

ab -n 1000 -c 10 https://localhost:81/t.php
  • -n 1000:總請求數
  • -c 10:並發連線數(模擬 10 使用者同時存取)

核心輸出指標解讀

指標中文名稱計算/含義關注重點
Concurrency Level並發層級設定的 -c 值實際並發能力
Time taken for tests總耗時所有請求完成總秒數越短越好
Complete requests成功請求HTTP 2xx/3xx 回應數應等於 -n
Failed requests失敗請求非 2xx/3xx 或連線錯誤應為 0
Requests per second吞吐率 (RPS)Complete / Time taken核心效能指標,越高越好
Time per request平均請求延遲Time taken / Complete × Concurrency單用戶體感延遲
Transfer rate傳輸速率總位元組 / 秒頻寬利用率參考

進階參數與實戰技巧

參數用途範例
-k啟用 Keep-Alive 長連線ab -k -n 1000 -c 50 ...
-H自訂 Header(如 Token、Cookie)-H "Authorization: Bearer xxx"
-pPOST 資料檔案-p post_data.json -T "application/json"
-TContent-Type配合 -p 使用
-v詳細輸出等級 (1-4)-v 2 顯示回應標頭
-g輸出 gnuplot 格式資料-g result.tsv 繪圖分析

常見誤區與避坑

  1. 單機 ab 壓測極限:客戶端 CPU/網卡可能成瓶頸,建議多台客戶端分散壓測。
  2. 忽略預熱:首輪請求含 JIT 編譯、連線池建立等,應丟棄前 10% 數據。
  3. 只看 RPS:需結合 Time per request (P99/P999) 判斷尾部延遲體驗。
  4. 靜態檔案 vs 動態 API:靜態資源 RPS 極高但無參考價值,必須測試核心業務 API。

結果視覺化建議

使用 -g output.tsv 匯出,配合 Python Pandas + Matplotlib 或 Grafana 繪製:

  • RPS 隨並發變化曲線(尋找最佳並發點)
  • 延遲分布直方圖(關注 P99/P999)
  • 錯誤率隨壓力變化趨勢
copyright © 萬盛學電腦網 all rights reserved