Иконка ресурса

FX - Session Mod 1.0.0

Нет прав для скачивания
Совместимость с XenForo
  1. 2.2
  2. 2.3
[FX] Session Mod обеспечивает высокопроизводительное автоматическое восстановление, оптимизацию таблиц и управление активностью сессий без простоев для XenForo 2.2+ и 2.3+. Он защищает ваше сообщество от блокировок базы данных, ошибок переполнения памяти и сбоев таблиц без необходимости ручного вмешательства сервера.


🌟Обзор и решенная проблема​

В XenForo таблица xf_session_activity регистрирует активных участников, гостей и поисковых роботов, просматривающих ваш форум в режиме реального времени. Эта таблица обновляется и запрашивается практически при каждом HTTP-запросе.

Из-за этой непрерывной высокопроизводительной активности администраторы XenForo часто сталкиваются с катастрофическими проблемами в базе данных, которые приводят к отключению всего форума:

  1. Ошибка MySQL [1114]: Таблица 'xf_session_activity' заполнена:
    • При использовании механизма MEMORY (HEAP) размер таблицы строго ограничен параметрами MySQL max_heap_table_size и tmp_table_size (обычно 16 МБ или 32 МБ).
    • Во время внезапных всплесков трафика, агрессивного сканирования поисковыми роботами (Google, Bing, Ahrefs, Yandex) или DDoS-атак таблица быстро заполняется.
    • Последствия : Посетители и участники видят белый экран с сообщением «Произошла непредвиденная ошибка базы данных» . Всё сообщество перестаёт работать, и администраторы даже не могут получить доступ к панели управления без SSH или phpMyAdmin для ручного выполнения команды TRUNCATE TABLE.
  2. Повреждение таблицы и ошибки сбоя ([145] Таблица помечена как поврежденная и должна быть восстановлена):
    • Отключение электропитания сервера, неожиданные перезапуски MySQL или состояния гонки при высокой параллельной обработке могут привести к повреждению индексных структур таблиц MyISAM или MEMORY.
  3. Взаимные блокировки и тайм-ауты ожидания блокировки ([1205], [1213]):
    • Одновременное обновление и плановые операции удаления данных могут привести к взаимоблокировке строк при высокой одновременной нагрузке на запись.
[FX] Session Mod навсегда устраняет эти уязвимости. Он перехватывает исключения базы данных, нацеленные на xf_session_activity, автоматически очищает и восстанавливает таблицу, подавляет некритические ошибки, обеспечивая бесперебойную загрузку страниц, и предоставляет администраторам мощные инструменты управления в один клик непосредственно в панели управления администратора.


🚀Основные характеристики​

1. 🛡️Интеллектуальное автоматизированное восстановление после ошибок​

  • Обнаружение многокодовых сигнатур:
    • Автоматически выявляет исключения базы данных, направленные на xf_session_activity:
      • 1114 - ER_RECORD_FILE_FULL ( Таблица заполнена )
      • 145, 1194, 1034, 1016, 1030, 126, 127 ( Таблица помечена как поврежденная/сбойная )
      • 1205, 1213 ( Тайм-аут ожидания блокировки / Взаимная блокировка )
      • 1062 ( Повторяющаяся запись для ключа PRIMARY )
  • Выполнение многоэтапного восстановления:
    • Этап 1 : Выполняется команда TRUNCATE TABLE xf_session_activity для мгновенного освобождения оперативной памяти или дискового пространства.
    • Этап 2 : Если таблица повреждена или некорректно определена, автоматически предпринимается попытка восстановления таблицы / оптимизации таблицы перед её очисткой.
    • Этап 3 : При ограничении прав на удаление данных из DDL выполняется резервный вариант DELETE FROM xf_session_activity.
  • Прозрачная автоматическая повторная попытка : автоматически повторяет исходный запрос сразу после восстановления. Посетители никогда не видят страницу с ошибкой.

2. ⚡100% бесперебойная работа, подавление ошибок.​

  • Записи активности сессии представляют собой временное состояние пользователя ( «Кто просматривает эту ветку обсуждения» ). Они не содержат критически важных транзакционных данных (аутентификация пользователя надежно изолирована в xf_session).
  • Если сбой серверного оборудования или диска сохраняется, механизм подавления ошибок предотвращает дальнейшее распространение исключения. Ваш форум остаётся на 100% онлайн, не выдавая посетителям фатальные ошибки 500.

3. ⏱️Защита от затопления / Защита дроссельной заслонки​

  • Встроенная в реестр функция ограничения времени выполнения (минимальный интервал между автоматическими сокращениями — 5 секунд). Предотвращает исчерпание пулов соединений с базой данных из-за «командных штормов», если у сервера базы данных есть проблемы с дисковым пространством или квотами на системном уровне.

4. 🎛️Интерактивная панель управления административной панелью.​

Находится в панели администратора > Инструменты > [FX] Модификация сессий (admin.php?fx-session-mod/):

  • Состояние и телеметрия таблиц в режиме реального времени:
    • Текущий механизм хранения данных (MEMORY или InnoDB).
    • Общее точное количество строк.
    • Размер отформатированных данных, размер индекса и общий объем занимаемого пространства.
    • Сортировка таблиц и форматирование строк.
    • При использовании функции MEMORY: Отображает ограничение max_heap_table_size наряду с процентом использования памяти в реальном времени и визуальными предупреждениями.
  • История восстановления после инцидента:
    • Общее количество автоматических вмешательств по восстановлению за всю жизнь.
    • Отметка времени последнего автоматического восстановления.
    • Отформатированная трассировка стека и сообщение о последней зарегистрированной ошибке.
    • Кнопка действия «Сбросить статистику».
  • Инструменты для обслуживания в один клик:
    • Очистить таблицу (TRUNCATE) : ручная очистка активности сессии одним щелчком мыши.
    • Проверка и восстановление таблицы (REPAIR) : Выполнение восстановления/оптимизации таблицы MySQL вручную.
    • Switch Storage Engine : Беспрепятственно переключайтесь между MEMORY (максимальная производительность в оперативной памяти) и InnoDB (безопасная база данных с дисковой поддержкой и без ограничений по объему памяти в куче) без обращения к консоли SQL.

5. ⏰Проактивная проверка работоспособности Cron (​

  • Запускается автоматически каждый час для поддержания гигиены столов:
    • Функция автоматического удаления записей при превышении заданного вами безопасного предела (fxSessionMod_maxRows) автоматически очищает записи.
    • Упреждающая очистка памяти : если таблица использует механизм MEMORY и использование памяти достигает 90% , дополнение упреждающе очищает таблицу до того, как может возникнуть ошибка MySQL 1114.

⚙️Руководство по настройке и параметрам​

Перейдите в панель администратора > Настройка > Параметры > [FX] Модификация сессии (admin.php?options/groups/fxSessionMod/):

ПараметрПо умолчаниюОписаниеРекомендуется
Автоматическое очищение таблицы при ошибке
fxSessionMod_autoEmpty
ВключеноПри возникновении исключения в базе данных переменная xf_session_activity автоматически обрезается.Включено
Таблица автоматического восстановления
fxSessionMod_autoRepair
ВключеноПри обнаружении повреждения таблицы выполняется попытка восстановления таблицы (REPAIR TABLE) перед её усечением.Включено
Предотвращение сбоев форума (ошибок Swallow Errors)
fxSessionMod_swallowErrors
ВключеноПредотвращает отображение посетителям страниц с ошибкой 500, вызванной неразрешимыми ошибками активности сессии.Включено
Запись в журнал ошибок сервера
fxSessionMod_logError
ВключеноСоздает запись в административном журнале ошибок сервера с подробным описанием ошибки при каждом запуске процесса восстановления.Включено
Ограничение на максимальное количество строк
fxSessionMod_maxRows
0При превышении заданного количества строк в cron автоматически запускается усечение данных. Установите значение 0, чтобы отключить эту функцию.0 (или 50000 при высокой интенсивности трафика)

🔍MEMORY против InnoDB: что лучше использовать?​

Коэффициент сравненияМеханизм памяти (куча памяти)Движок InnoDB
Место храненияСистемная оперативная памятьДисковый/буферный пул
Производительность записиЧрезвычайно быстроВысокая скорость (с дисковым вводом-выводом)
Ограничение вместимостиОграничено параметром max_heap_table_sizeПрактически безгранично
Режим отказаВызывает ошибку 1114 (Таблица заполнена)Замедление записи на диск при высокой нагрузке
РекомендацияИдеально подходит для высокой производительности в сочетании с [FX] Session Mod.Идеально подходит для обеспечения стабильности по принципу «настроил и забыл» без необходимости настройки памяти.
[!TIP] При активной функции [FX] Session Mod вы можете безопасно оставлять механизм MEMORY включенным для максимальной скорости, не опасаясь сбоев в работе всего сайта, поскольку дополнение автоматически обрабатывает и очищает таблицу в ту же миллисекунду, когда возникает ошибка!

📋Системные требования​

  • XenForo: версия 2.2.0 или выше (совместимо с XenForo 2.3.x).
  • PHP: 7.4.0 или выше (PHP 8.0, 8.1, 8.2, 8.3 полностью поддерживаются).
  • База данных: MySQL 5.7+ / MariaDB 10.3+.

📥Инструкция по установке​

Способ 1: Установка через панель администратора (рекомендуется)​

  1. Перейдите в панель администратора > Дополнения .
  2. Нажмите «Установить/обновить из архива» .
  3. Выберите пакет FX-SessionMod-1.0.0.zip и нажмите «Загрузить» .
  4. Подтвердите действия, предложенные при установке.

Метод 2: Ручная установка через каталог.​

  1. Загрузите каталог FX/SessionMod на свой веб-сервер по адресу:
    <web_root>/src/addons/FX/SessionMod
  2. Перейдите в панель администратора > Дополнения и нажмите «Установить» в разделе [FX] Session Mod .

Метод 3: Интерфейс командной строки (CLI)​

Из корневого каталога XenForo выполните команду:

php cmd.php xf:addon-install FX/SessionMod
  • session-mod.png
    session-mod.png
    885 KB · Просмотры: 8
  • Capture.png
    Capture.png
    206.1 KB · Просмотры: 7
  • Capture2.png
    Capture2.png
    131.9 KB · Просмотры: 9
  • Capture3.png
    Capture3.png
    183.8 KB · Просмотры: 9
Автор
bxarek
Скачивания
2
Просмотры
33
Первый выпуск
Обновление
Оценка
0.00 звёзд 0 оценок

Другие ресурсы пользователя bxarek

Поделиться ресурсом

Назад
Сверху Снизу