Центр Диагностики & База Системных Ошибок

Решения для Windows Server, Active Directory, 1С, СУБД, Linux, Cisco, MikroTik и IP-телефонии.

⚠️ Важная информация Все материалы, инструкции, команды и скрипты предоставлены исключительно в ознакомительных целях. Их применение может повлиять на работу операционной системы, баз данных и сетевого оборудования. Перед выполнением действий обязательно создайте резервную копию. При отсутствии необходимой квалификации обратитесь к ИТ-специалистам.
Apache Error: AH00690: no slotmem from mod_heartmonitor Linux / DevOps

Apache Error AH00690: no slotmem from mod_heartmonitor — Решение

Обновлено: 18.08.2026  ·  Официальная база знаний

При использовании модулей балансировки нагрузки или кластеризации в error.log веб-сервера Apache регулярно фиксируются предупреждения уровня [error] или [warn]: [lbmethod_heartbeat:notice] [pid 1234:tid 5678] AH00690: no slotmem from mod_heartmonitor.

Модуль ApacheНазначениеПричина сбоя
mod_lbmethod_heartbeatАлгоритм балансировки на основе heartbeat-метрик нодПытается прочитать shared memory, которая не создана
mod_heartmonitorСлужба сбора heartbeat сигналов от бэкендовМодуль не включен или отключена разделяемая память
mod_slotmem_shmДрайвер разделяемой памяти на базе SHM (Shared Memory)Отсутствует в цепочке загрузки модулей балансировщика
  • Балансировщик нагрузки не может распределять трафик по алгоритму Heartbeat, переходя на базовый round-robin или сбрасывая запросы.
  • Журнал ошибок быстро разрастается однотипными сервисными записями.
  1. Если вы НЕ используете сложную кластерную балансировку через Heartbeat (самый частый случай), отключите неиспользуемый модуль lbmethod_heartbeat:
    # В Debian/Ubuntu:
    sudo a2dismod lbmethod_heartbeat
    sudo systemctl restart apache2
    
    # В RHEL/CentOS (закомментируйте строку в /etc/httpd/conf.modules.d/00-proxy.conf):
    # LoadModule lbmethod_heartbeat_module modules/mod_lbmethod_heartbeat.so
  2. Если вам действительно требуется Heartbeat балансировка, включите обязательный модуль разделяемой памяти mod_slotmem_shm и монитор mod_heartmonitor:
    # Debian/Ubuntu:
    sudo a2enmod slotmem_shm heartmonitor lbmethod_heartbeat
    sudo systemctl restart apache2
  3. Настройте директиву пути к данным heartbeat в httpd.conf:
    <IfModule mod_heartmonitor.c>
        HeartbeatStorage /var/run/apache2/heartbeat
    </IfModule>
  4. Проверьте права доступа процесса Apache к каталогу разделяемой памяти /var/run/apache2/ или /run/httpd/.
  5. Протестируйте и перезагрузите конфигурацию: sudo apache2ctl configtest && sudo systemctl restart apache2.
Рекомендация по балансировке: Для большинства стандартных задач балансировки (Reverse Proxy к пулу бэкендов) используйте стабильные модули mod_lbmethod_byrequests (балансировка по числу запросов) или mod_lbmethod_bytraffic вместо устаревшего Heartbeat.
Практический опыт инженера: При переходе на балансировщик `byrequests` не забудьте указать `ProxySet lbmethod=byrequests` в блоке ``.

Частые вопросы (FAQ)

Что такое Slotmem в Apache?

Slotmem (модуль mod_slotmem_shm) — это механизм предоставления разделяемой памяти на основе слотов (SHM), позволяющий нескольким процессам и воркерам Apache мгновенно обмениваться состоянием сессий и балансировщика.

Опасна ли ошибка AH00690 для обычных сайтов?

Нет, для сайтов без использования балансировщика нагрузки Heartbeat эта ошибка абсолютно безвредна, но свидетельствует о загрузке лишнего неиспользуемого модуля.

Какие альтернативные методы балансировки есть в Apache?

mod_lbmethod_byrequests (по умолчанию), mod_lbmethod_bytraffic (по объему байт), mod_lbmethod_bybusyness (по числу активных соединений).

Как проверить список всех загруженных модулей балансировщика?

Выполните команду apache2ctl -M | grep lbmethod.