Linux

Apache 在響應之前有很長的延遲

  • May 1, 2014

我在 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

這是獲取文本文件的五秒等待時間的螢幕截圖。 wget 報告事務花費了 0 秒,但您可以看到開始和結束時間相隔 5 秒。 JMeter 結果 ab 結果似乎沒有幫助,但我可能無法正確解釋它們。

我諮詢過的一些資源:

任何幫助將非常感激。謝謝你。

一位同事向我指出了這個頁面,它建議將以下內容添加到 /etc/resolv.conf:

options single-request-reopen

我不確定這是否是修復它的原因,或者它是否是我嘗試過的幾件事的某種組合,但其他訪問該資源的人表示在我添加此資源後速度顯著加快。我希望它可以幫助別人。

Latency在您的 JMeter View Results Table Listener 中提及。

根據負載報告

LATENCY 是您的請求到達伺服器所涉及的延遲。

我建議檢查您的網路配置,最好的選擇可能是mtr工具。

有關詳細資訊,請參閱使用 MTR指南診斷網路問題。

引用自:https://serverfault.com/questions/577235