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" |
-p | POST 資料檔案 | -p post_data.json |
-T | Content-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

| 指標 | 含義 | 關注重點 |
|---|---|---|
| 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 | 網路傳輸頻寬利用率 | 單位時間傳輸資料量 |
-g 輸出 TSV,匯入 Excel/Python 繪製 P50/P95/P99 延遲分佈Failed requests 分為連線失敗、讀取逾時、HTTP 非 2xx、內容長度不符,需分別排查ab 受限於客戶端資源,高併發時客戶端本身成為瓶頸 → 改用分散式壓測工具Failed requests 非零的情況,導致 RPS 虛高