![Wie behebt man die Meldung „[info] Server scheint beschäftigt zu sein“ aus den Apache-Serverprotokollen?](https://rvso.com/image/658839/Wie%20behebt%20man%20die%20Meldung%20%E2%80%9E%5Binfo%5D%20Server%20scheint%20besch%C3%A4ftigt%20zu%20sein%E2%80%9C%20aus%20den%20Apache-Serverprotokollen%3F.png)
Ich habe gesehen, dass diese Frage einige Male gestellt wurde, aber keine richtige Antwort darauf gab. Deshalb habe ich mich entschlossen, meine Lösung zu veröffentlichen.
Die folgende info
Meldung ist im Apache error.log zu sehen:
[info] server seems busy, (you may need to increase StartServers, or Min/MaxSpareServers), spawning 16 children, there are 41 idle, and 129 total children
Antwort1
Die Lösung scheint ziemlich offensichtlich zu sein: Erhöhen Sie den Wert, StartServers
bis er verschwindet. Das stimmt zwar, aber es ist keine gute Praxis, den Wert willkürlich zu erhöhen, es sei denn, Sie verstehen die Auswirkungen und wissen, ob der erhöhte Wert tatsächlich hilft.
Ich habe den httpd-Quellcode durchgelesen und dort steht Folgendes:
/*
* idle_spawn_rate is the number of children that will be spawned on the
* next maintenance cycle if there aren't enough idle servers. It is
* doubled up to MAX_SPAWN_RATE, and reset only when a cycle goes by
* without the need to spawn.
*/
Weiter in der Quelle wird der eigentliche Fehler protokolliert, wenn:
if (retained->idle_spawn_rate >= 8) {
ap_log_error(APLOG_MARK, APLOG_INFO, 0, ap_server_conf, APLOGNO(00162)
"server seems busy, (you may need "
"to increase StartServers, or Min/MaxSpareServers), "
"spawning %d children, there are %d idle, and "
"%d total children", retained->idle_spawn_rate,
idle_count, total_non_dead);
}
Das bedeutet also, dass dieser Fehler ausgelöst wirdwenn die Anzahl der im nächsten Zyklus zu erzeugenden untergeordneten Elemente größer als 8 ist, weil nicht genügend Server vorhanden sind, um die Anforderungen zu verarbeiten.
Wie können Sie das Problem also beheben?
Jedes Mal, wenn dieser Fehler auftritt, sehen Sie etwas wie spawning 16 children
; das bedeutet, dass 16 Kinder erzeugt werden mussten, da nicht genügend Server vorhanden waren, um die Anfragen zu verarbeiten. Erhöhen Sie grundsätzlich Ihre StartServers
um die Anzahl der erzeugten Kinder, bis der Fehler verschwindet. Sie können Min/MaxSpareServers
stattdessen auch die um diesen Betrag erhöhen.