Я должен отметить, что я не системный администратор. Вы поймете это очень вскоре.:)
Вкратце: Apache продолжает брать передышку во время больших нагрузок, и все процессы идут неактивные. Это - сервер опроса, который используется приложениями. Опросы прибывают из большого количества различных конечных точек. Время от времени (каждые 4-5 минут), если я наблюдаю вершину, процессы HTTPD идут неактивные все одновременно, останавливая трафик в течение 10 секунд или около этого. Это затем восстанавливается. Задержка проблематична.
Журналы Apache
Иногда, но не всегда (главным образом после перезапуска), я получаю эти сообщения в error_log. Большую часть времени, когда это происходит, я ничего не вижу в error_log.
[Mon Jun 30 17:55:17 2014] [info] server seems busy, (you may need to increase StartServers, or Min/MaxSpareServers), spawning 8 children, there are 31 idle, and 98 total children [Mon Jun 30 17:55:18 2014] [info] server seems busy, (you may need to increase StartServers, or Min/MaxSpareServers), spawning 16 children, there are 14 idle, and 98 total children [Mon Jun 30 17:55:44 2014] [info] server seems busy, (you may need to increase StartServers, or Min/MaxSpareServers), spawning 8 children, there are 74 idle, and 99 total children [Mon Jun 30 17:55:54 2014] [info] server seems busy, (you may need to increase StartServers, or Min/MaxSpareServers), spawning 8 children, there are 61 idle, and 99 total children [Mon Jun 30 17:56:00 2014] [info] server seems busy, (you may need to increase StartServers, or Min/MaxSpareServers), spawning 8 children, there are 0 idle, and 97 total children [Mon Jun 30 17:56:02 2014] [info] server seems busy, (you may need to increase StartServers, or Min/MaxSpareServers), spawning 16 children, there are 36 idle, and 99 total children [Mon Jun 30 17:56:03 2014] [info] server seems busy, (you may need to increase StartServers, or Min/MaxSpareServers), spawning 32 children, there are 39 idle, and 99 total children [Mon Jun 30 18:08:17 2014] [info] server seems busy, (you may need to increase StartServers, or Min/MaxSpareServers), spawning 8 children, there are 18 idle, and 99 total children [Mon Jun 30 18:08:18 2014] [info] server seems busy, (you may need to increase StartServers, or Min/MaxSpareServers), spawning 16 children, there are 63 idle, and 98 total children [Mon Jun 30 18:08:19 2014] [info] server seems busy, (you may need to increase StartServers, or Min/MaxSpareServers), spawning 32 children, there are 74 idle, and 97 total children
Конфигурация Apache (старая прокомментированная конфигурация)
просто показ объектов конфигурации, которые я подозреваю, релевантен
#Timeout 60 Timeout 20 KeepAlive on MaxKeepAliveRequests 1000 KeepAliveTimeout 2 IfModule prefork.c StartServers 85 MinSpareServers 85 MaxSpareServers 100 ServerLimit 100 MaxClients 100 #StartServers 60 #MinSpareServers 60 #MaxSpareServers 85 #ServerLimit 85 #MaxClients 85 MaxRequestsPerChild 1000 /IfModule
Обратите внимание, что нет никакого различия между старыми и новыми конфигурациями в поведении.
Среда EC2, c1.medium, mod_perl, персистентные соединения с базой данных, разделяет сервер RDS, никакие ошибки при показе в журналах ошибок MySQL и никаких ошибках при показе в журналах Apache
Как в стороне, я видел предложения для установки ультрасовременного состояния, но я не выяснил, как сделать так, и я не знаю, что искать, если я делаю.
Тайна решена.
В случае, если это случится с кем-то еще: Сетевое соединение (внутри VPC через LAN-интерфейс) между Apache и сервером баз данных было перегружено. Обновление сервера баз данных в более крупную инстанцию решило проблему (на данный момент)
Background: Amazon делает снимки вашей базы данных каждые 5 минут для своей функции восстановления на определенный момент времени. Для этого он загружает двоичный журнал на вашем экземпляре RDS.
Каждые 5 минут двоичный журнал передается (предположительно на другую EBS), и в моем случае эта передача перегружает интерфейс LAN. Apache останавливается, пока он ждет сетевого соединения каждые пять минут, и соединения накапливаются, а некоторые, в конечном счете, прерываются
.Я увеличил MaxClients до 200...
. Также мне любопытно, почему запасные серверы Min и Max так высоки. Я бы, вероятно, установил MinSpareServers на что-то около 20, а MaxSpareServers на что-то около 30. Это количество в основном простаивающих процессов, которые остаются, apache будет создавать больше по мере необходимости до настройки MaxClients и уменьшать количество свободных процессов по мере того, как спрос снижается.
Наконец, почему вы изначально создаете так много исходных серверов. Я бы начал с чего-то вроде установки StartServers примерно на 50.
.У меня была такая же проблема, оказалось, что она была вызвана наличием уменьшенного экземпляра RDS. ЦП и память всегда были ниже 15%, поэтому я не стал обновлять его до тех пор, пока не прочитал ответ OP.
Изменение экземпляра RDS с t2.micro на t2.medium решило мою проблему.
Это было действительно сложно. устранение неполадок, поскольку это не так очевидно из статистики экземпляра, единственное, что я мог заметить, это небольшие пики на графиках пропускной способности ввода и вывода.