在 ApacheBench 下排查 Go HTTP 伺服器的連線問題
您的 Go HTTP 伺服器在 ApacheBench 測試期間遇到連線問題。 ApacheBench 傳回「連線被拒絕」或「操作逾時」等錯誤,表示伺服器處理傳入請求的能力出現問題。
確定根本原因:連接埠耗盡
經過調查,很明顯伺服器的臨時連接埠已用完。 macOS 的預設臨時連接埠範圍為 49152-65535,在沒有 keepalive 的情況下不足以處理大量並發請求。
連接埠耗盡機制
每個 HTTP不帶 keepalive 的 /1.0 請求會消耗伺服器上唯一的臨時連接埠。當此連接埠範圍耗盡時,作業系統將對未使用連接埠的請求進行排隊。
對效能的影響
一旦連接埠佇列填滿,作業系統將限制進一步傳入連線。因此,客戶端可能會遇到連線失敗或逾時。
緩解問題
要緩解問題,請考慮以下選項:
以上是為什麼我的 Go HTTP 伺服器未能通過 ApacheBench 測試並出現「連線被拒絕」或「操作逾時」錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!