這問題發生在 Server version: Apache/2.4.6 身上
MPM 是 event
Server MPM: event
在 /var/log/httpd/error_log 可以查到 ↓
[mpm_event:error] [pid 28974:tid 139684961474688] AH00485: scoreboard is full, not at MaxRequestWorkers
也是有人在討論 Scoreboard is full,not at MaxRequestWorkers , apache 這版就是有 bug
一開始遇到時,沒 patch 它 (種種原因),改了設定 MaxConnectionsPerChild 為 0
ServerLimit 20 ThreadsPerChild 30 MaxRequestWorkers 300 MaxConnectionsPerChild 0 # <<<<<< 這個 StartServers 3 MinSpareThreads 75 MaxSpareThreads 250
行程就安穩了許多,不至於掛掉
過了 N 個光年後,現在它又不順了,會掛掉
後來的觀查 apache 的 server-status 裡,在 requests currently being processed 這行
110 requests currently being processed, 86 idle workers
它的數值不會忽高忽低,其實是因為 MaxConnectionsPerChild 設成 0 的關係
數值會一直累加上去,直到奔向 MaxRequestWorkers 數值
還有在 apache 的 server-status 裡,Srv PID Acc M CPU SS Req Conn 這行以下的行程
Srv PID Acc M CPU SS Req Conn Child Slot Client VHost Request 0-2 27385 0/32/6606 G 2.69 78 1 0.0 0.26 75.15 1.1.1.1 ssorc.tw:443 GET /abc
照理 M (Mode of operation) 這行為為 G 時 (也就是 Gracefully finishing), 應該要自己不見
在 Linux console 裡 ps 它其實就沒有這 PID 的行程了
但在 apache 的 server-status 裡竟還在
所以後來又改了設定
ServerLimit 300 MaxConnectionsPerChild 1000
現在它又穩定了
留言