Wrk
Wrk 高性能 HTTP 壓力測試工具
軟體分類 應用軟體 / 開發輔助工具
軟體標籤
1295雙重驗證 (2FA)1486Ubuntu影音編輯1290
開發廠商 Will Glozer & Open Source Community
拒絕笨重的壓測軟體:在終端機中,以毫秒級的精度壓榨 Web 服務的每一分效能
- 極致並發能力: 採用多執行緒與非阻塞 I/O 設計,單台筆電即可模擬數萬個並發連線,輕鬆達到數十萬甚至百萬級的 QPS (Queries Per Second)。
- Lua 腳本擴展: 內建 LuaJIT,支援自定義請求頭、動態 URL 參數、POST 內容以及對響應結果的統計與驗證,適配各種複雜的業務場景。
- 精確的延遲分析: 內建詳細的延遲統計功能,提供平均值、標準差以及關鍵的百分位數(P50, P90, P99),協助定位長尾延遲(Tail Latency)問題。
- 低干擾基準測試: 工具本身的資源占用極低,確保測試結果反映的是伺服器的真實瓶頸,而非測試工具自身的性能限制。
核心技術架構:多執行緒與事件循環
- ae Event Loop: 借鑒自 Redis 的高效事件驅動庫,處理數萬個 Socket 連線的狀態轉移。
- LuaJIT Runtime: 提供極速的腳本執行能力,在不影響壓測主邏輯的前提下,實現複雜的動態負載生成。
- Thread Management: 充分利用多核 CPU,每個執行緒獨立運行一個事件循環,減少鎖競爭(Lock Contention)。
2026 關鍵技術更新
- HTTP/3 & QUIC 原生支持: 2026 年版本全面適配 UDP 底層傳輸,支援對現代邊緣運算節點進行 0-RTT 的極速壓測。
- AI 負載模式模擬 (AI-Traffic): 整合了輕量化 AI 模型,能模仿真實人類使用者的點擊行為與不規則的請求間隔,生成更具參考價值的壓力模型。
- 分散式集群協作 (Wrk-Grid): 2026 年新功能,支援多台主機組成壓測矩陣,由控制端統一發布指令並聚合全球節點的測試報告。
- 與 OpenTelemetry 深度整合: 壓測時自動注入追蹤 TraceID,讓 SRE 能在 Grafana/Jaeger 中直接觀察壓測流量在後端微服務間的流轉細節。
基準測試工具橫向對比 (2026)
| 特性項目 | Apache AB | JMeter | Wrk |
|---|---|---|---|
| 並發模型 | 單執行緒 | 多執行緒 (阻塞) | 多執行緒 (非阻塞) |
| 自帶開銷 | 低 | 高 | 極低 |
| 擴展性 | 無 | 豐富 (GUI/Plugins) | 強 (Lua 腳本) |
| 延遲統計 | 基礎 | 豐富 | 精確 (百分位數) |
| 2026 特色 | 穩定標準 | 企業級全功能 | 極致效能與 AI 流量模擬 |
吞吐量與排隊理論模型 (LaTeX)
Wrk 的測試目標是尋找系統的飽和點。根據 Little’s Law,系統中的平均請求數
在 2026 年的高性能測試中,我們更關注系統的穩定性指標
在 2026 版的 AI 優化模式下,系統會自動探測「拐點(Knee Point)」,即吞吐量增長趨緩而延遲開始激增的臨界狀態。
快速使用範例
- 基本測試 (12 執行緒, 400 連線, 持續 30 秒):
wrk -t12 -c400 -d30s http://127.0.0.1:8080/index.html - 使用 Lua 腳本執行 POST 請求:
wrk -t2 -c100 -d10s -s post_data.lua http://api.service.com/v1/user - 自定義標頭 (Header):
wrk -H "Authorization: Bearer <TOKEN>" -c10 http://api.protected.com
產品說明
Wrk 是後端工程師的「測謊機」。在 開發輔助工具 與性能工程的技術版圖中,它解決了「如何以最低硬體成本模擬最高量級壓力」的難題。它摒棄了華麗的 UI,回歸到數據與性能的本質。其核心價值在於「極速、精確與可擴展」——讓開發者在代碼上線前,就能對其在高負載下的表現了然於胸。對於在 2026 年構建高併發交易系統、即時通訊平台或需要挑戰物理性能極限的架構師來說,Wrk 是檢驗系統成色的唯一權威標尺。

