Drupal на Apache: последовательные ошибки PHP "Превышено максимальное время выполнения 240 секунд"

Этот сервер Apache/MySQL (Debian 8), на котором работает сайт Drupal, демонстрирует странное поведение:

Всегда есть один процесс Apache, работающий со 100% загрузкой процессора (согласно htop). Каждые четыре минуты (~240 секунд) процесс завершается, и сразу же другой процесс Apache переходит на вершину со 100% загрузкой ЦП - еще на четыре минуты.

Глядя на журнал ошибок Apache, завершенный процесс отображается с фатальной ошибкой PHP "Превышено максимальное время выполнения 240 секунд":

[: error] [pid 31280] [client 185.17.206.72:55628] Неустранимая ошибка PHP: превышено максимальное время выполнения 240 секунд в /var/www/drupal/modules/field/field.attach.inc в строке 328

Эта модель продолжается в рабочее время. Ночью, когда на сайте меньше посетителей, сообщение об ошибке появляется реже.

Система имеет пять ядер (ВМ) и работает под управлением Apache 2.4, PHP 5.6, Percona 5.6 и Drupal 7. Я запускал MySQL с медленным журналом запросов, но нет медленных запросов, которые бы соответствовали этим частым тайм-аутам PHP.

Я запустил strace на нескольких процессах Apache, работающих со 100% -ной загрузкой ЦП, но не нашел ничего особо заметного: процесс останавливается при опросе каждые несколько секунд на пару секунд. Но это, кажется, нормальное поведение.

Нет недостатка в соединениях с БД (согласно, например, mysqltuner и tuningprimer).

Смотря на запросы, которые соответствуют этим тайм-аутам (я использовал формат журнала с PID и время, необходимое для завершения запросов: LogFormat "%h %l %u %t %>s %D %P \"%r\" %b" exectime), Я не вижу шаблонов: это происходит для различных запросов, и это запросы, которые обычно заканчиваются в 1 с и менее.

Мне просто интересно, что происходит с этими последовательными ошибками PHP и как я могу их контролировать. Любые идеи о том, как дополнительно проанализировать это?

0 ответов

Другие вопросы по тегам