Linux
Apache 在響應之前有很長的延遲
我在 CentOS 上有一個 Apache 伺服器,它偶爾需要 1-5 秒來提供一個文件,包括一個 2 個字元的文本文件。我有一個 JMeter 測試,它可以獲取幾種不同類型的文件,並且延遲通常發生在它首先抓取的任何文件上,但並非總是如此。無論是並行還是順序的多個請求都是如此。它實際需要服務的頁面是 PHP/Oracle,但我假設問題不在程式碼中,因為 PHP 沒有解析文本文件(我確實確認了這一點)。
- HostnameLookups 已關閉。我 grepped /etc/httpd 以確認我已將它們全部根除。
- 網路內和網路外的人都會經歷滯後。
- 如果我從伺服器本身執行 wget 也會受到滯後影響,這讓我認為這不是 DNS 問題。
- 當我在 Apache Bench 上看到它時,它在連接和處理過程中都顯示出延遲。
- 我從未見過 ping 的延遲。
- 我們暫時在防火牆中添加了一個例外,但當它沒有任何區別時將其恢復。
- 我根據給定的公式設置 MaxClients$$ here $$ (https://servercheck.in/blog/3-small-tweaks-make-apache-fly)
- 伺服器支持 SSL,但我執行的測試通常通過 HTTP 進行測試。每隔一段時間我都會通過 HTTPS 執行測試,它的速度通常代表了它的安全性較低的對應物。
- 我正在使用 AllowOverride 來解析 .htaccess 文件,但是當我禁用它並進行測試時,我仍然看到相同的延遲。
- 潛伏在 httpd.conf 中的所有設置幾乎都不允許/拒絕所有設置
- 我仍在研究 Apache MPM 和 valgrind。
一些相關的 Apache 設置:
啟動伺服器 8 MinSpareServers 5 MaxSpareServers 20 伺服器限制 256 最大客戶數 136 MaxRequestsPerChild 4000
我諮詢過的一些資源:
- Apache / PHP 伺服器在響應前延遲一分鐘
- Centos/Windows apache 網路延遲
- 提供文件之前 Apache 中的隨機延遲
- 緩慢的http響應
- 為什麼本地主機上的響應這麼慢?
- PHP + Apache 漫長的等待時間
任何幫助將非常感激。謝謝你。
一位同事向我指出了這個頁面,它建議將以下內容添加到 /etc/resolv.conf:
options single-request-reopen
我不確定這是否是修復它的原因,或者它是否是我嘗試過的幾件事的某種組合,但其他訪問該資源的人表示在我添加此資源後速度顯著加快。我希望它可以幫助別人。
Latency
在您的 JMeter View Results Table Listener 中提及。根據負載報告
LATENCY 是您的請求到達伺服器所涉及的延遲。
我建議檢查您的網路配置,最好的選擇可能是mtr工具。
有關詳細資訊,請參閱使用 MTR指南診斷網路問題。