Web benchmark tool

提到 web benchmark 大家第一個提到 ab, 超簡單上手, 但只能連同一頁。到 stackoverflow 查了一下, 注意到 JMeter,  Siege Pylot。最多人推 JMeter, 不過看起來有點複雜, 所以先選 Siege 來試。

Siege 很簡單,  試一下馬上就能上手:
  1. 讀 Siege 官網幾個 link
  2. 用 siege.config 產生 ~/.siegerc
  3. 讀設定檔裡的詳細註解
  4. 寫好 urls.txt 檔
Siege 可以設定要依序讀 urls.txt 的網址, 還是隨機挑。這樣的簡單設定已可滿足一些常用模式。若想模擬熱門網址較多人連, 大可重覆多放幾次。若需要測使用者的功能, 要在 ~/.siegerc 裡填 login-url, 設定檔裡有範例。Siege 會在進行測試前先連一次 login-url。2.69 版後支援用不同帳號登入。我一開始用 Ubuntu 8.04 包的 Siege 2.66, 結果 login-url 無效, 改用最新的 2.70 就 OK 了。

注意 Django 1.2 開始有 CSRF middleware, Siege 無法用 POST 的方式登入。我另外寫了一個用 GET 登入的網址, 自己用 auth.login 登入。反正別放到 production server 就好了。

即使這種測試無法反應真實情況, 有測的話可以抓到一些明顯的錯誤, 像是開太多 WSGI processes, 卻沒提高 MySQL max-connections, 結果負載高時會 MySQL 會發生 "Too many connections" 的錯誤。初步使用上覺得挺不錯的, 接著要規劃一些情境來測試複雜的情況。

留言

這個網誌中的熱門文章

(C/C++ ) 如何在 Linux 上使用自行編譯的第三方函式庫

熟悉系統工具好處多多

virtualbox 使用 USB 裝置