Модуль DB Maintenance Drupal

Модуль DB Maintenance Drupal оптимизирует выбранные администратором таблицы в базе данных с каждым запуском cron.php. Небольшая его доработка позволяет решать жизненно важную задачу - чистку таблицы cache_menu. Указанная таблица спорадически разрастается, рост ее объема может превысить дисковую квоту, выделенную хостинг-провайдером - своего рода «информационную емкость» - и сайт попросту упадет. Как исправить? Редакция от 13.10.2014.

Создан 13.10.2014 17:32:11

Разрастание таблицы cache_menu проявляется не у всех, не на всех сайтах, а порой может происходить только на одном из нескольких практически идентичных Интернет-ресурсов. Такая перемежающаяся ошибка по своим последствиям очень напоминает DDoS-атаку. Те, кто пользуется Drupal чисто утилитарно, не всегда могут позволить себе искать причину и для них важнее просто предотвратить последствия.

Модуль DB Maintenance Drupal позволяет администратору выбрать ряд таблиц базы данных для оптимизации, см. рисунок ниже.

- Настройки модуля DB Maintenance

Выбранные таблицы выделены серым, среди них - та самая злополучная cache_menu. DB Maintenance будет оптимизировать выбранные таблицы ежечасно с каждым запуском крона, но, если в исходном коде модуля внести изображенные ниже изменения -

- Изменения в модуле DB Maintenance

заменить OPTIMIZE TABLE на TRUNCATE - DB Maintenance будет просто очищать выбранные таблицы.

Такой способ борьбы с разрастанием cache_menu несколько лет успешно работает на сайте ООО «Техническая документация» и даже в моменты пиковой нагрузки предотвращает его падение. А вот при поиске битых ссылок - см. последний абзац статьи Битые ссылки на страницах HTML-контента сайтов и Xenu's Link Sleuth - лучше послеживать за таблицей вручную с помощью phpMyAdmin и при выходе ее размера за определенные пределы останавливать сканирование, чистить таблицу и заново запускать поиск.