Apa arti dari "AH00485: papan skor penuh, bukan di MaxRequestWorkers"?

25

Lingkungan saya

  • CentOS 6.4 X86_64
  • Apache 2.4.4
  • PHP 5.4.16 (FPM)
  • 2 Intel Xeon E5-2620 @ 2.00GHz (8 inti, 16 utas di setiap prosesor)
  • Memori terdaftar 48GB RAM.
  • 3 Hard Disk 15RPM 145GB di RAID0 (oleh BIO

Variabel yang menarik

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

Status Server Apache

Versi Server: Apache / 2.2.4 (Unix) OpenSSL / 1.0.1e mod_fastcgi / mod-fastcgi-SNAP-0910052141
Server Dibangun: 24 Mei 2013 16:48:07


Waktu Sekarang: Senin, 17-Juni-2013 09:48:11 COT
Waktu Mulai Ulang : Senin, 17-Juni-2013 08:35:14 COT
Server Induk Konfigurasi. Generation: 1
Parent Server MPM Generation: 0
Server uptime: 1 jam 12 menit 57 detik
Server load: 0,05 0,10 0,09
Total akses: 14144 - Total Lalu Lintas: 349,7 MB
Penggunaan CPU: u.28 s.25 cu0 cs0 - .0121% CPU memuat
3,23 permintaan / detik - 81,8 kB / detik - 25,3 kB / permintaan
1 permintaan saat ini sedang diproses, 191 pekerja menganggur

  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

Catatan eror

Pesan kesalahannya adalah

[Senin 17 Juni 09: 32: 45.680842 2013] [mpm_event: error] [pid 8574: tid 140185091581760] AH00485: papan skor penuh, bukan di MaxRequestWorkers

Ini muncul setiap beberapa detik. Saya tidak mengerti. Bagaimana saya bisa memperbaikinya?

Jose Nobile
sumber

Jawaban:

18

Kami memiliki masalah yang sama di Apache 2.4.6. Setelah memantau server dan menyesuaikan pengaturan selama beberapa jam, tampak kepada kami bahwa Apache mungkin memiliki bug. Apa yang tampaknya terjadi adalah bahwa proses server kadang-kadang masuk ke Gkeadaan (anggun menyelesaikan) dan restart untuk menerima permintaan baru, itu normal. Yang tidak normal adalah karena alasan tertentu hal ini dapat memakan waktu hingga beberapa menit untuk memulai kembali. Jika Anda hanya menjalankan beberapa proses server dan semuanya masuk ke Gstatus pada saat yang sama maka papan skor Anda terisi dan Anda tidak akan dapat mem-server permintaan lagi.

Apa yang kami lakukan adalah meningkatkan jumlah server sehingga ada sedikit kesempatan bahwa mereka semua akan masuk ke Gnegara pada saat yang sama. Pastikan juga Anda mengalokasikan setidaknya 25 utas ( MaxRequestWorkers) untuk setiap proses server karena tampaknya itu adalah default (yaitu jika 5 Serversx 25 ThreadsPerChild= 125 MaxRequestWorkers). Anda dapat mengubah ThreadsPerChildjika Anda suka, kami membiarkannya secara default. Jika Anda tidak mengalokasikan cukup utas, server tambahan tidak akan memulai. Kami meninggalkan MinSpareThreadspada nilai default yaitu 25 dan default untuk MaxSpareThreadsyang 75. Jika Anda mengubah pengaturan ini, nilai untuk MaxSpareThreadsharus lebih besar dari atau sama dengan jumlah MinSpareThreadsdan ThreadsPerChild. Juga MaxRequestWorkersharus sama dengan atau kurang dari ServerLimit.

Inilah yang berhasil bagi kami tetapi mungkin itu bukan konfigurasi terbaik untuk Anda.

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

Sunting: Ini adalah bug yang dikonfirmasi dalam modul mpm_event httpd yang mungkin tidak dapat diperbaiki melalui konfigurasi. Entri bugtracker yang
ditautkan memiliki tambalan yang diduga dan lebih banyak diskusi tentang cara memperbaikinya hingga versi baru dari modul acara dirilis secara resmi.

Kam
sumber
MaxConnectionsPerChildPengaturan Anda terlalu rendah untuk penggunaan produksi. Lebih jauh lagi, mengaturnya untuk apa pun selain 0 hanya dimaksudkan untuk dilakukan pada Windows karena kebocoran memori secara internal.
rustyx
Apache error_log juga memberikan petunjuk:MaxRequestWorkers of 40 is not an integer multiple of ThreadsPerChild of 25, decreasing to nearest multiple 25
dhaupin
1
MaxSpareServers / MinSpareServers tidak berlaku untuk mpm_event. Saya tidak yakin apa yang Anda maksudkan di sini karena jumlahnya terlalu rendah untuk menjadi MaxSpareThreads / MinSpareThreads.
Hamish Moffatt
Juga menghadapi masalah ini pada Debian pada rotasi log Apache2. Rujuk ke support.plesk.com/hc/en-us/articles/…
Yves Martin
Tambalan yang disebutkan dalam jawaban ini digabung dalam 2.4.25. Saya di sini karena saya punya masalah, walaupun saya menggunakan 2.4.25. Rupanya, itu muncul di ulang yang dipicu oleh logrotate dan proses terus menulis error.log.1. error.loghanya menyebutkan ulang.
Jérôme
3

Melihat masalah yang sama.

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 

Kami khususnya dapat menyebabkan perilaku ini dengan memuat ulang apache.

Apa yang kemudian kita lihat, adalah beberapa proses lama yang tidak berhenti:

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

Perhatikan PID 'lama' dan 'baru' dan waktu mulai. ^^

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
Serge van Ginderachter
sumber
0

Kami mulai melihat ini ketika salah satu basis data replika kami offline dan mulai kehabisan waktu. Ini mengikat trilyun utas di Apache, tampaknya sampai semuanya agak rusak dan kami mulai menerima pesan ini.

Mungkin bukan kasus normal, tapi saya serahkan ini ke kanon dengan harapan bisa membantu orang lain yang melihat kesalahan ini.

mlissner
sumber