“AH00485: çetele dolu, MaxRequestWorkers'ta değil” ne demek?


25

Benim ortam

  • CentOS 6.4 X86_64
  • Apache 2.4.4
  • PHP 5.4.16 (FPM)
  • 2 Intel Xeon E5-2620 @ 2.00GHz (8 çekirdekli, her işlemcide 16 iş parçacığı)
  • 48GB RAM kayıtlı bellek.
  • 3 Sabit Disk 15RPM 145GB RAID0 (BIO tarafından)

İlginç Değişkenler

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

Apache Sunucu Durumu

Sunucu Sürümü: Apache / 2.2.4 (Unix) OpenSSL / 1.0.1e mod_fastcgi / mod-fastcgi-SNAP-0910052141
Sunucu Dahili: 24 Mayıs 2013 16:48:07


Şimdiki Zaman: Pazartesi, 17-Jun-2013 09:48:11 COT
Yeniden Başlama Zamanı: Pazartesi, 17-Jun-2013 08:35:14 COT
Parent Server Config. Üretim: 1
Ana Sunucu MPM Üretimi: 0
Sunucu çalışma süresi: 1 saat 12 dakika 57 saniye
Sunucu yükü: 0.05 0.10 0.09
Toplam erişim: 14144 - Toplam Trafik: 349.7 MB
CPU Kullanımı: u.28 s.25 cu0 cs0 - .0121% CPU yük
3.23 istek / sn - 81.8 kB / saniye - 25.3 kB / istek
şu anda işlenmekte olan 1 istek, 191 boşta çalışan

  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

Hata Günlüğü

Hata mesajı

[Pzt 17 Haz 09: 32: 45.680842 2013] [mpm_event: error] [adet 8574: teklif 140185091581760] AH00485: çetele dolu, MaxRequestWorkers'da değil

Bu birkaç saniyede bir görünür. Anlamadım Nasıl düzeltebilirim?

Yanıtlar:


18

Apache 2.4.6'da da aynı problemi yaşadık. Sunucuyu izledikten ve ayarı birkaç saat boyunca ayarladıktan sonra, Apache'nin bir hatası olabileceği anlaşılıyor. Görünen o ki, sunucu zaman zaman işleme giriyor G(incelikle bitiyor) ve yeni istekleri kabul etmek için yeniden başlatılıyor, bu normaldir. Normal olmayan şey, bir nedenden dolayı yeniden başlatmanın birkaç dakika sürebilir. Yalnızca birkaç sunucu işleminiz çalışıyorsa ve hepsi Gaynı anda duruma girerse , puan tahtanız doldurulur ve daha fazla istek gönderemezsiniz.

Yaptığımız şey sunucu sayısını arttırmaktı, bu yüzden hepsinin Gaynı anda devlete girme şansı daha azdı . Ayrıca MaxRequestWorkers, varsayılan olarak göründüğü için her sunucu işlemi için en az 25 adet konu ( ) ayırdığınızdan emin olun (ör. 5 Serversx 25 ThreadsPerChild= 125 ise MaxRequestWorkers). İsterseniz değiştirebilirsiniz ThreadsPerChild, varsayılan olarak bıraktık. Yeterli iş parçacığı ayırmazsanız, ek sunucular başlamaz. Biz sol MinSpareThreads25 olduğu varsayılan değerinde ve varsayılan için MaxSpareThreadssize, değeri bu ayarları değiştirmek yaparsanız hangi 75 bulunmuştur MaxSpareThreadstoplamına eşit veya daha büyük olmalıdır MinSpareThreadsve ThreadsPerChild. Ayrıca MaxRequestWorkers, eşit veya daha küçük olmalıdır ServerLimit.

İşte bizim için ne işe yaradı, ancak sizin için en iyi yapılandırma olmayabilir.

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

Düzenleme: Bu, httpd'nin mpm_event modülünde, yapılandırma ile düzeltilemeyen onaylanmış bir hatadır .
Bağlantılı bugtracker girişinin varsayılan bir düzeltme eki ve olay modülünün yeni bir sürümü resmi olarak yayınlanıncaya kadar bunun nasıl düzeltileceği hakkında daha fazla tartışma var.


Kişisel MaxConnectionsPerChildayar üretim kullanımı için yol çok düşük. Dahası, onu 0'dan başka bir şeye ayarlamak sadece Windows'ta yapılması gerekiyor çünkü dahili olarak hafıza sızdırıyor.
rustyx

Apache error_log ayrıca ipuçları verir:MaxRequestWorkers of 40 is not an integer multiple of ThreadsPerChild of 25, decreasing to nearest multiple 25
dhaupin

1
MaxSpareServers / MinSpareServers, mpm_event için geçerli değildir. Burada neyi kastettiğinizden emin değilim çünkü sayılar MaxSpareThreads / MinSpareThreads olamayacak kadar düşük.
Hamish Moffatt

Ayrıca bu sorunla Debian'da Apache2 log dönüşünde karşılaşıldı. Bakınız support.plesk.com/hc/en-us/articles/...
Yves Martin'i

Bu cevapta bahsedilen yamalar 2.4.25'te birleştirildi. Buradayım çünkü sorunum var, ancak 2.4.25 kullanıyorum. Görünüşe göre, logrotate tarafından tetiklenen bir yeniden yükleme göründü ve işlemler yazmaya devam ediyor error.log.1. error.logsadece yeniden yüklemeden bahseder.
Jérôme

3

Aynı konuyu görmek.

Apache 2.4.7-1ubuntu4.4 on Ubuntu 14.04
Server Version: Apache/2.4.7 (Ubuntu)
Server MPM: event
Server Built: Mar 10 2015 13:05:59 

Özellikle bu davranışa apache'yi yeniden yükleyerek neden olabiliriz.

O zaman gördüğümüz, durmayan birkaç eski süreç:

root     28192  0.0  0.8 103772  8648 ?        Ss   Mar16   0:03 /usr/sbin/apache2 -k start
www-data  2530  0.3  2.1 865188 21516 ?        Sl   06:26   0:54  \_ /usr/sbin/apache2 -k start
www-data  2531  0.2  2.1 865436 21892 ?        Sl   06:26   0:51  \_ /usr/sbin/apache2 -k start
www-data  3299  0.3  2.0 864140 20628 ?        Sl   06:46   0:51  \_ /usr/sbin/apache2 -k start
www-data  7305  0.3  2.1 865100 21504 ?        Sl   08:36   0:37  \_ /usr/sbin/apache2 -k start
www-data 11952  0.2  1.8 863004 19268 ?        Sl   10:46   0:06  \_ /usr/sbin/apache2 -k start
www-data 13284  0.0  0.6 103772  6692 ?        S    11:18   0:00  \_ /usr/sbin/apache2 -k start
www-data 13553  2.1  2.0 866156 21248 ?        Sl   11:23   0:01  \_ /usr/sbin/apache2 -k start

'Eski' ve 'yeni' PID'lere ve başlangıç ​​zamanlarına dikkat edin. ^^

PID Connections     Threads Async connections
total   accepting   busy    idle    writing keep-alive  closing
7305    14  no  0   0   0   0   0
2530    13  no  0   0   0   0   0
3299    7   no  0   0   0   0   0
13553   65  no  17  8   0   25  25
2531    15  no  0   0   0   0   0
11952   10  no  0   0   0   0   0
Sum 124     17  8   0   25  25

GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
GGGGGGGGGGGW_WWWW__W_W_W_WWWWWWW__WWGGGGGGGGGGGGGGGGGGGGGGGGGGGG
GGGGGGGGGGGGGGGGGGGGGG

0

Çoğaltma veritabanlarımızdan biri çevrimdışı olduğunda ve zaman aşımına uğradığında bunu görmeye başladık. Bu, Apache’deki bir gazillion ipliğini bağladı, görünüşe göre işler biraz bozuluncaya kadar ve bu mesajı almaya başladık.

Muhtemelen normal durum bu değildir, ancak bunu, bu hatayı gören başkalarına yardımcı olacağı umuduyla kanonlara gönderiyorum.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.