Я видел, как этот вопрос задавали несколько раз, но на него не было настоящего ответа; поэтому я решил выложить свою резолюцию.
Нижеприведенное info
сообщение можно увидеть в журнале ошибок 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
Решение кажется довольно очевидным; увеличить 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
на эту сумму вместо этого.