Таблица watchdog разрастается на дестяки ГБ.

Главные вкладки

Аватар пользователя VasyOK VasyOK 15 мая в 14:10

Заметил, что таблица watchdog на сайтах (сделанных разными людьми) разрастается до неприличных значений под десятки ГБ. При том что статей ну 500.

Я ж так понимаю это таблица записи в журнал Друпала?

/admin/config/development/logging
Logging and errors
Database log messages to keep: 1000 - установлено

Как-то ограничить можно?

Комментарии

Аватар пользователя Andruxa Andruxa 15 мая в 14:31

Размер таблицы лога не зависит от количества контента.
Возможно, таблица растет из-за того, что редко или вообще не запускается крон - ограничение на кол-во записей как раз указывает, сколько строк оставлять при очистке таблицы по крону.
Если крон не запускается - то и записи из таблицы не удаляются.

Аватар пользователя jura12 jura12 15 мая в 15:04

у меня тоже разрасталось несмотря на установку в 100 записей. я отключил этотот модуль и сайт ожил. смотрю ошибки в логах апача.

Аватар пользователя VasyOK VasyOK 15 мая в 15:12

Крон запускается регулярно. Очистка журнала руками - очищает таблицу watchdog.
Отключить модуль пробовал, но оказалось что мне он регулярно нужен.

"The maximum number of messages to keep in the database log. " - в моем понимании это число, которое держать на сайте, а не очищать по крону.

Если это действительно так, то как ограничить число записей, которое возможно вообще?

Аватар пользователя Andruxa Andruxa 15 мая в 15:27

VasyOK wrote: "The maximum number of messages to keep in the database log. " - в моем понимании это число, которое держать на сайте, а не очищать по крону.

Да, именно так.

VasyOK wrote: Если это действительно так, то как ограничить число записей, которое возможно вообще?

Никак, новые записи добавляются в таблицу лога, старые удаляются по крону.

Если крон регулярно запускается, надо проверять, почему не происходит удаление старых записей из лога.
Попробуй установить Ultimate Cron - он позволяет настроить расписания отдельно для каждого модуля, в котором используется hook_cron и ведет отдельные логи при выполнении каждого задания по крону, возможно там будут какие-то подробности.

Аватар пользователя marassa marassa 15 мая в 17:04

VasyOK wrote: таблица watchdog на сайтах (сделанных разными людьми) разрастается до неприличных значений под десятки ГБ.

А записей в ней сколько?

VasyOK wrote: Крон запускается регулярно.

И после его запуска сколько записей в таблице watchdog? Не гигабайт, а записей?
Дело в том, что при определенной конфигурации MySQL он никогда не освобождает место, выделенное под таблицу, даже если удалить все записи. Для начала надо выяснить удаляются ли записи сверх 1000 после запуска крона или нет. Если удаляются, но размер базы в гигабайтах не уменьшается, то нужно читать документацию по MySQL и смотреть как переконфигурировать базу чтоб место освобождалось.

Аватар пользователя gun_dose gun_dose 15 мая в 23:22

Да, в innodb никогда не уменьшается размер таблиц. Надо их пересоздавать, чтобы уменьшились. Можно переключить с innodb на myisam и обратно, тогда таблица уменьшится, и даже данные сохранятся.

Аватар пользователя gun_dose gun_dose 15 мая в 23:18

Andruxa wrote: Да, именно так.

Нет, не так. Удаляется только по крону, и никак иначе. А число в настройках - это сколько записей останется, когда крон удалит лишнее. А если крон не запускается, то и расти будет бесконечно.

Отключать watchdog - не лучшая затея. Если сайт сделан правильно, то там в журнале почти ничего не будет даже при тысячах посетителей. Если он разрастается, надо смотреть, что там за ошибки. У меня был случай, новостной сайт с довольно большой посещаемостью. В минуту писалось несколько сотен сообщений об "undefined array key". Посмотрел внимательно, проблема была в двух шаблонах. Поставил проверку isset в двух местах и всё. Стало записываться порядка 10-20 сообщений в сутки.