這問題發生在 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

現在它又穩定了

 

Related posts 相關文章

作者

留言

撰寫回覆或留言

發佈留言必須填寫的電子郵件地址不會公開。