2010-05-04 3 views
3

В течение последних нескольких месяцев моя таблица сеансов drupal увеличивалась до нескольких ГБ. Кажется, он начался, когда я обновился до drupal 5.20 (ранее я думал, что drupal автоматически очистил старые сеансы). Поэтому я создал задание cron для удаления сеансов старше двух недель, но это слишком долго для выполнения (таблица сеансов растет примерно на миллион строк в неделю). Должен ли drupal фактически обрабатывать это, или мне просто нужно сократить максимальный возраст сеанса до тех пор, пока время выполнения не будет приемлемым?Таблица сеансов Drupal становится огромной

Кроме того, я думал, что drupal не должен создавать сеанс по первому запросу, тем самым устраняя многие записи мусора для сканеров. Но по крайней мере четверть записей сеанса - это боты.

ответ

1

Звучит как ошибка в вашем коде где-то. Drupal не должен создавать сеанс по первому запросу по этой точной причине.

Обновления Drupal - это только исправления/исправления безопасности для Drupal 6 и ниже. Поэтому я не понимаю, почему обновление могло вызвать проблему.

Вы что-то изменили ядро ​​Drupal?

+1

Drupal ядро ​​не было изменено в нескольких местах, но ничего такого, что должно повлиять на это. Однако я сделал еще несколько исследований, и кажется, что модуль Contrib (органические группы) вмешивался в обработку сеанса drupal. Я обновил модуль и, похоже, исправил его! – Brian

3

Пришел, когда я снова исследовал проблему.

Это вызвано, вероятно, из-за: наличия конфигурации PHP в некоторых дистрибутивах linux означает, что сборка мусора PHP-сессии не выполняется. Поэтому функция очистки сеанса Drupal, которая должна очищать старый сеанс от БД, никогда не запускается ....

См все об этом здесь: http://www.rymland.org/en/blogs/boaz/2_jan_09/making-php-session-expire-drupal-and-general

Смежные вопросы