![Как устранить ошибку «[info] server seem busy» в журналах сервера Apache?](https://rvso.com/image/658839/%D0%9A%D0%B0%D0%BA%20%D1%83%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%B8%D1%82%D1%8C%20%D0%BE%D1%88%D0%B8%D0%B1%D0%BA%D1%83%20%C2%AB%5Binfo%5D%20server%20seem%20busy%C2%BB%20%D0%B2%20%D0%B6%D1%83%D1%80%D0%BD%D0%B0%D0%BB%D0%B0%D1%85%20%D1%81%D0%B5%D1%80%D0%B2%D0%B5%D1%80%D0%B0%20Apache%3F.png)
Я видел, что этот вопрос задавали несколько раз, но на него не было реального ответа; поэтому я решил опубликовать свое решение.
Следующее info
сообщение можно увидеть в файле error.log Apache:
[info] server seems busy, (you may need to increase StartServers, or Min/MaxSpareServers), spawning 16 children, there are 41 idle, and 129 total children
решение1
Решение, кажется, довольно очевидно: увеличивайте StartServers
до тех пор, пока это не исчезнет. Хотя это и правда, произвольно увеличивать значение — плохая практика, если вы не понимаете последствий и действительно ли увеличенное значение поможет.
Я читал исходный код httpd и там написано следующее:
/*
* 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.
*/
Далее в источнике регистрируется фактическая ошибка, когда:
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);
}
Итак, это означает, что эта ошибка выдаетсякогда количество дочерних элементов, которые должны быть созданы в следующем цикле, превышает 8 из-за недостатка серверов для обработки запросов.
Так как же это исправить?
Каждый раз, когда возникает эта ошибка, вы увидите что-то вроде spawning 16 children
; это означает, что пришлось создать 16 потомков, поскольку не хватало серверов для обработки запросов. По сути, увеличивайте StartServers
на количество создаваемых потомков, пока ошибка не исчезнет. Вы также можете увеличить Min/MaxSpareServers
на это количество вместо этого.