Benchmark
ab(Apache Benchmark)“失敗”中的“接收”和“異常”是什麼意思?
從 ab 得到這個結果:
並發級別:10000
測試時間:69.153 秒
完成請求:30000
失敗的請求:10379
(連接:0,接收:3424,長度:3531,例外:3424)
寫入錯誤:0
總傳輸量:48414203 字節
傳輸的 HTML:41042477 字節
每秒請求數:433.82
$$ #/sec $$(意思是)
接收和例外是什麼意思。謝謝。
從http://httpd.apache.org/docs/2.2/programs/ab.html,
Failed requests The number of requests that were considered a failure. If the number is greater than zero,another line will be printed showing the numer of requests that failed due to connecting, reading, incorrect content length, or exceptions.
如果您正在測試“動態”頁面,則內容長度會發生變化並可能導致失敗。範例是頁面上的廣告或圖像或不同的結果。
我猜,異常只是應用程序在頁面上拋出的異常。
您的失敗率可能很高,因為您的後端應用程序可能無法承受負載或連接。
更新:來自 ab 原始碼,接收(err_recv 計數)表示
/* catch legitimate fatal apr_socket_recv errors */ else if (status != APR_SUCCESS) { err_recv++; if (recverrok) { bad++; close_connection(c); if (verbosity >= 1) { char buf[120]; fprintf(stderr,"%s: %s (%d)\n", "apr_socket_recv", apr_strerror(status, buf, sizeof buf), status); } return;
這基本上意味著,您的 apache/webserver 在處理 ab 發送的數據包時遇到了問題。這可能是因為很多事情——網路、apache 太忙……當您執行測試時,您是否在 apache/webserver 日誌中看到任何錯誤?具體來說,連接重置或超時?