
我的 apache 遇到了一個問題,它因要求太多而停滯不前。當我查看伺服器狀態頁面時,我可以看到大多數連線都處於「正在讀取請求」狀態,但尚未完成。當我正常重新啟動時,所有「讀取請求」連線都會消失。因為重啟時間不長,我信仰連接不再使用。
apache 在一段時間內(> 30 分鐘)會被這些請求填滿。但是,當不再使用連接時,我預計會出現一些超時來終止這些連接,但這種情況不會發生,或者超時太大。
有誰知道哪個超時應該終止這些連接或我是否在錯誤的點進行搜索?
設定的一些詳細資訊:
HP-UX 上的 apache 2.0.55,帶有 mod_jk 1.2.10
大多數處於「正在讀取請求」狀態的連線都是透過mod_jk 到tomcat 後端的連線(客戶端--> HP -UX apache --> Tomcats ),但不是全部。
我知道mod_jk是一個非常舊的版本,計劃很快更新。
但我不懷疑mod_jk,因為使用較新的mod_jk 將連線重新導向到另一個apache,然後將連線重新導向到tomcat(客戶端--> HP-UX apache --> Linux apache --> Tomcats)時,會出現相同的效果。 HP-UX apache 永遠充滿「RR」連線。
答案1
您的workers.properties 檔案內容是什麼?你嘗試使用socket_timeout嗎?
socket_timeout 0 Socket timeout in seconds used for the communication
channel between JK and remote host. If the remote host
does not respond inside the timeout specified, JK will
generate an error, and retry again. If set to zero
(default) JK will wait for an infinite amount of time on
all socket operations.
預設情況下,socket_timeout 是無限的。
答案2
httpd.conf 中 Apache 的逾時值是多少? keepalive 是開啟還是關閉?超時時間太長很容易導致您當前看到的情況發生。