Сбой таблицы регулярных сеансов в большой многодоменной системе Drupal с несколькими сайтами


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

Drupal выдает ошибку, подобную этой: "Предупреждение: Таблица "./[база данных]/сеансы" помечена как аварийно завершенная и должна быть восстановлена..."

Проблема с этим сайтом заключается в том, что он начинался как небольшой сайт drupal, и различные компании добавили к нему (пользовательские) модули. Сайт также был перенесен на несколько различных хостинг-провайдеров с различными результатами. В настоящее время это размещается в OVH на общем хостинге.

Сейчас сайт довольно большой, с постоянной базой из 20 пользователей, которые одновременно вставляют данные (в разные учетные записи, но через интерфейс drupal), в основном изображения через модуль множественной загрузки. В то же время большой трафик поступает от анонимных пользователей (которые на данный момент ничего не загружают).

Я думаю, что проблема может быть в платформе общего хостинга. Я думаю, что он, возможно, не сможет справиться со всеми разные вставки и просто вылетает... Обычно я бы посмотрел, могу ли я каким-то образом вызвать сбой, но я не могу закрыть сайт, так как это приведет к серьезным финансовым потерям для компании.

Я прочитал здесь несколько других сообщений, касающихся большой таблицы сеансов, где они упоминали "ini_set('session.gc_maxlifetime', 200000);" строка в settings.php файл. "Ответ" состоял в том, чтобы сократить количество сеансов до 900-1800, что привело бы к уменьшению таблицы сеансов, но я не знаю если бы это решило проблему?

Что еще хуже, мой клиент не может предоставить мне никакой информации о том, когда происходят сбои, если они, возможно, вызваны использованием пользовательского модуля и т.д. Сайт работает на Drupal 6.

Я понимаю, что в моем посте не так много полезной информации, и я приношу извинения за это. Я новый разработчик Drupal и не знаю, как решить эту проблему. (Разработчик, который занимался этой проблемой до того, как я пришел сюда, уволился...)

Любая помощь в этом вопрос был бы оценен по достоинству.

Спасибо.

Author: Mike, 2012-05-07

1 answers

Я бы преобразовал таблицы пользователей и сеансов в InnoDB. Я бы также проверил ограничения памяти для MySQL. Это не самый идеальный инструмент, но если вы находитесь в общей среде, вы можете установить копию настроек Drupal(http://drupal.org/project/drupal_tweaks ) и посмотрите, можете ли вы изменить какую-либо директиву конфигурации MySQL, такую как ограничение памяти.

 1
Author: Charlie Schliesser, 2012-06-08 17:54:40