使用 ab 對 nginx 進行基準測試:連線被對等方重設 (54)

使用 ab 對 nginx 進行基準測試:連線被對等方重設 (54)

我最近更新到 nginx 1.0.8,並嘗試對快取的動態頁面(最初由 Django 應用程式透過 proxy_pass 提供服務)和靜態頁面的效能進行基準測試。在這兩種情況下,nginx 都不會服務超過 3 或 4 個請求(即使沒有並發連接),因此 ab 幾乎立即報告:

apr_socket_recv: Connection reset by peer (54)

只有當選擇最多 4 個(或更少)請求時,ab 才能成功完成。

這是為什麼?我嘗試增加工作進程的數量(沒有運氣),但我認為 nginx 應該能夠在不調整任何配置變數的情況下服務超過 4 個請求。難道是我不小心觸發了某種DOS保護機制?

答案1

ab我在針對簡單的 Node.JS 應用程式執行本機測試時遇到了同樣的問題。我發現的解決方法是使用ab -r指示Don't exit on socket receive errors.

但此錯誤的根本原因是您的盒子中可以打開的套接字數量有限。如果您使用的是 OSx,您可以參考此答案來為此限制設定更高的數字:

如何增加 osx 上套接字的限制以進行負載測試

相關內容