Многие люди предполагают, что эта проблема может быть связана с блокировкой синхронных фоновых процессов , особенно связанных с тяжелыми заданиями cron .
Если это правда, существует отличная пара модулей, находящихся в стадии активной разработки gielfeldt *, которые могли бы устранить эту проблему или, по крайней мере, могли бы предложить некоторые подсказки и помочь разработчикам сайтов диагностировать и лечить конкретных преступников в их случаях. Оба заменяют блокирующие синхронные процессы неблокирующими асинхронными HTTP или командами, и оба предлагают соответствующие отчеты, которые могут идентифицировать проблемные процессы:
- Фоновый процесс и связанные с ним модули позволяют асинхронно обрабатывать очередь фоновых процессов Drupal, поэтому они не блокируются. Это может остановить проблему. Кроме того, благодаря встроенному модулю фонового процесса Apache Server, выпущенному в последней версии, появился базовый, но улучшенный отчет по пользовательскому интерфейсу с функциями для отслеживания, разблокирования и проверки времени запуска и хода этих процессов. Это может идентифицировать проблемный процесс.
- Ultimate Cron основывается на фоновом процессе, чтобы задачи, запускаемые cron, имели свои собственные отдельные асинхронные расписания, каждый из которых можно отслеживать и останавливать в пользовательском интерфейсе. Помимо того, что он отлично подходит для отделения тяжелых задач, снижающих производительность, от обычной очистки с минимальными издержками, он также предоставляет вам отчет с удобной информацией, такой как продолжительность выполнения каждой отдельной задачи, запускаемой cron, при последнем запуске, текущее состояние, и т.д. Это также может снять блокировку и / или выявить проблемные процессы.
В любом случае оба они очень полезны; для этой проблемы они могут использоваться для проверки (очень правдоподобной) теории, что блокировки вызваны синхронными процессами блокировки или прогонами cron. Потенциально они могли бы решить проблему, выполняя их асинхронно, а не синхронно, и они могли бы также предложить подсказки относительно того, какие конкретные процессы вызывали задержку. (имейте в виду, что их документация находится в стадии разработки ...
Однако, если они вообще не могут быть настроены на помощь, это говорит о том, что проблема не только в синхронных фоновых процессах. FWIW, у меня никогда не было этой конкретной проблемы на сайте с тех пор, как эти модули работали должным образом (пока - дрова), но я видел это на своих сайтах раньше, а также на живых сайтах Drupal в дикой природе.
Также следует помнить о других связанных подключаемых модулях, которые в настоящее время разрабатываются - например, в сложных случаях высокой интенсивности Ultimate Cron Queue Scaler , которая позволяет регулировать пороговые значения, может помочь уменьшить проблемы производительности, связанные с cron.
* нет принадлежности, я просто очень впечатлен пользователем их работы