Linux
apache2 響應緩慢(debian)
我正在使用 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。
希望這可以幫助。