Заметил, что таблица watchdog на сайтах (сделанных разными людьми) разрастается до неприличных значений под десятки ГБ. При том что статей ну 500.
Я ж так понимаю это таблица записи в журнал Друпала?
/admin/config/development/logging
Logging and errors
Database log messages to keep: 1000 - установлено
Как-то ограничить можно?
Комментарии
Размер таблицы лога не зависит от количества контента.
Возможно, таблица растет из-за того, что редко или вообще не запускается крон - ограничение на кол-во записей как раз указывает, сколько строк оставлять при очистке таблицы по крону.
Если крон не запускается - то и записи из таблицы не удаляются.
у меня тоже разрасталось несмотря на установку в 100 записей. я отключил этотот модуль и сайт ожил. смотрю ошибки в логах апача.
Крон запускается регулярно. Очистка журнала руками - очищает таблицу watchdog.
Отключить модуль пробовал, но оказалось что мне он регулярно нужен.
"The maximum number of messages to keep in the database log. " - в моем понимании это число, которое держать на сайте, а не очищать по крону.
Если это действительно так, то как ограничить число записей, которое возможно вообще?
попробуйте бороться с ДДОС ом. я знаю 2 средства fail2ban и modsecurity
Мои проекты очень непопулярные. ДДОС врядли нужен их противникам.
Да, именно так.
Никак, новые записи добавляются в таблицу лога, старые удаляются по крону.
Если крон регулярно запускается, надо проверять, почему не происходит удаление старых записей из лога.
Попробуй установить Ultimate Cron - он позволяет настроить расписания отдельно для каждого модуля, в котором используется hook_cron и ведет отдельные логи при выполнении каждого задания по крону, возможно там будут какие-то подробности.
А записей в ней сколько?
И после его запуска сколько записей в таблице watchdog? Не гигабайт, а записей?
Дело в том, что при определенной конфигурации MySQL он никогда не освобождает место, выделенное под таблицу, даже если удалить все записи. Для начала надо выяснить удаляются ли записи сверх 1000 после запуска крона или нет. Если удаляются, но размер базы в гигабайтах не уменьшается, то нужно читать документацию по MySQL и смотреть как переконфигурировать базу чтоб место освобождалось.
Да, в innodb никогда не уменьшается размер таблиц. Надо их пересоздавать, чтобы уменьшились. Можно переключить с innodb на myisam и обратно, тогда таблица уменьшится, и даже данные сохранятся.
Нет, не так. Удаляется только по крону, и никак иначе. А число в настройках - это сколько записей останется, когда крон удалит лишнее. А если крон не запускается, то и расти будет бесконечно.
Отключать watchdog - не лучшая затея. Если сайт сделан правильно, то там в журнале почти ничего не будет даже при тысячах посетителей. Если он разрастается, надо смотреть, что там за ошибки. У меня был случай, новостной сайт с довольно большой посещаемостью. В минуту писалось несколько сотен сообщений об "undefined array key". Посмотрел внимательно, проблема была в двух шаблонах. Поставил проверку isset в двух местах и всё. Стало записываться порядка 10-20 сообщений в сутки.
попробуйте модуль https://www.drupal.org/project/db_maintenance но не уверен что поможет но даст надежду наверняка.
Кажись он немножко другое делает.