Linux

apache2 響應緩慢(debian)

  • May 20, 2010

我正在使用 modpython 和 mpm_worker_module 執行 apache2 2.2.9 網路伺服器。

mpm 的目前配置是

ServerLimit 32
StartServers         10
MaxClients          800
MinSpareThreads      25
MaxSpareThreads      75
ThreadsPerChild      25
MaxRequestsPerChild   0

伺服器有 1G 記憶體和 100Mbit 連接。

檢查netstat -na | grep 已建立 | wc -l給我一個介於 50 - 60 之間的數字。負載約為 1.0 每個頁面載入也由 memcached 記憶體。

我不明白為什麼伺服器對新連接的響應如此緩慢,有時會完全丟棄它們?

還嘗試禁用 iptables 以確保它不是因為完整的狀態表或類似的東西。

dmesg 中唯一的內容是大量關於“TCP: Treason uncloaked!”的垃圾郵件。

即使連接到具有 apache2ctl 狀態的 localhost 也會失敗,因此它不應該與 modpython 相關。當狀態正常工作時,它顯示大約 110-128 個請求正在處理中。大約一半是狀態 C(關閉連接),很多是 _(等待連接),其餘是 R 和 W

error_log 報告什麼?這是開始調試此類問題的最佳場所。

top 也是調試它的好方法。執行 top 並檢查 Apache 程序是否使用過多的 CPU。然後鍵入 M 以按記憶體使用情況對程序進行排序,並檢查它們是否消耗了過多的 RAM。

還要檢查您是否正在交換:

free

memcached 在同一台伺服器上執行?如果是這樣,它分配了多少記憶體?

另外,您是否遇到了 i/o 等待問題?執行 top 時檢查 %wa 值。

關於網路,您是否有錯誤或 CRC?用 netstat 檢查它:

netstat -i

查看 RX-ERR、RX-DRP、TX-ERR 和 TX-DRP 列。理想情況下,這些值應為 0。

希望這可以幫助。

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