Apache-2.2

“AH00485: scoreboard is full, not at MaxRequestWorkers”是什麼意思?

  • January 12, 2022

我的環境

  • CentOS 6.4 X86_64
  • 阿帕奇 2.4.4
  • PHP 5.4.16 (FPM)
  • 2 個 Intel Xeon E5-2620 @ 2.00GHz(8 核,每個處理器 16 個執行緒)
  • 48GB RAM 註冊記憶體。
  • RAID0 中的 3 個硬碟 15RPM 145GB(通過 BIO

有趣的變數

   <IfModule mpm_event_module>
       StartServers             2
       ThreadLimit             196
       MinSpareThreads         96
       MaxSpareThreads        192
       ThreadsPerChild         96
       MaxRequestWorkers      192
       MaxConnectionsPerChild   96
   </IfModule>

Apache 伺服器狀態

伺服器版本:Apache/2.2.4 (Unix) OpenSSL/1.0.1e mod_fastcgi/mod-fastcgi-SNAP-0910052141

伺服器建構時間:2013 年 5 月 24 日 16:48:07


目前時間:2013 年 6 月 17 日星期一 09:48:11 COT

重啟時間:2013 年 6 月 17 日星期一 08:35:14 COT

父伺服器配置。生成:1

父伺服器 MPM 生成:0

伺服器正常執行時間:1 小時 12 分 57 秒

伺服器負載:0.05 0.10 0.09

總訪問次數:14144 - 總流量:349.7 MB

CPU 使用率:u.28 s.25 cu0 cs0 - .0121% CPU負載

3.23 個請求/秒 - 81.8 kB/秒 - 25.3 kB/

請求 目前正在處理 1 個請求,191 個空閒工作人員

  PID | Connections       | Threads     | Async connections
      | total | accepting | busy | idle | keep-alive | closing
  ==============================================================
18997 | 3     | yes       | 1    | 95   | 0          | 3
18485 | 0     | yes       | 0    | 96   | 0          | 0
  ==============================================================
Sum   | 3     |           | 1    | 191  | 0          | 3

錯誤日誌

錯誤資訊是

$$ Mon Jun 17 09:32:45.680842 2013 $$ $$ mpm_event:error $$ $$ pid 8574:tid 140185091581760 $$AH00485:記分牌已滿,不在 MaxRequestWorkers

這每隔幾秒鐘出現一次。我不明白。我該如何解決?

我們在 Apache 2.4.6 上遇到了同樣的問題。在監視伺服器並調整設置幾個小時後,我們認為 Apache 可能存在錯誤。似乎發生的是伺服器程序偶爾進入G狀態(優雅完成)並重新啟動以接受新請求,這是正常的。不正常的是,由於某種原因,這可能需要幾分鐘才能重新啟動。如果您只有幾個伺服器程序正在執行並且它們都同時進入該G狀態,那麼您的記分板就會填滿,您將無法再處理任何請求。

G我們所做的是增加伺服器的數量,因此它們同時進入狀態的可能性較小。還要確保為每個伺服器程序分配至少 25 個執行緒 ( MaxRequestWorkers),因為這似乎是預設值(即,如果 5 Serversx 25 ThreadsPerChild= 125 MaxRequestWorkers)。您可以根據需要進行更改ThreadsPerChild,我們將其保留為預設值。如果您沒有分配足夠的執行緒,其他伺服器將不會啟動。我們保留MinSpareThreads了預設值 25 和預設值MaxSpareThreads75。如果您修改了這些設置,則 的值MaxSpareThreads必須大於或等於 和 的MinSpareThreads總和ThreadsPerChild。也MaxRequestWorkers必須等於或小於ServerLimit

這對我們有用,但它可能不是最適合您的配置。

StartServers 3
MinSpareServers 5
MaxSpareServers 10
ServerLimit 250
MaxRequestWorkers 250
MaxConnectionsPerChild 1000
KeepAlive Off

編輯:這是httpd 的 mpm_event 模組中已確認的錯誤,可能無法通過配置修復。

連結的bugtracker條目有一個假定的更新檔和更多關於如何修復這個問題的討論,直到事件模組的新版本正式發布。

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