Рейтинг:0

httpd завершает работу после перезагрузки - slotmem-shm

флаг co

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

Пример:

/config/аааа/*.conf
/config/bbbb/*.conf

/config/активный -> /config/аааа

И в моем основном httpd.conf файл,

требуется /config/active/*.conf

Процесс развертывания удалит ссылку и повторно свяжет новый каталог конфигурации.

После выдачи

systemctl перезагрузить httpd

Ошибка

У меня есть следующая ошибка в моих журналах, прежде чем процесс просто умрет.

(28) На устройстве не осталось места: AH02611: create: apr_shm_create(/etc/httpd/run/slotmem-shm-p975c3056_scanner_2.shm) не удалось

Отладка

У меня достаточно свободного места на диске:

[журнал root@proxy3]# df -h
Используемый размер файловой системы Доступно Использование % Установлено на
/dev/mapper/cl_template-root 3.8G 3.4G 363M 91%/
tmpfs 989M 102M 888M 11%/запуск
//10.3.36.10/config3 3.8G 2.6G 1.3G 68% /config

Каталог, когда сервер работает, составляет всего 6 МБ.

[root@proxy3 ~]# du -h /etc/httpd/run/
0 /etc/httpd/run/htcacheclean
6.0M /etc/httpd/run/

С ~1500 файлами

[root@proxy3 ~]# du -h /etc/httpd/run/* | туалет -л
1521

Память доступна (следует удалить кеш)

[root@proxy3 httpd]# бесплатно
              общее количество использованных бесплатных общих баффов/доступных кешей
Мем: 2025016 408128 113756 111216 1503132 1352584

Мои семафоры и ulimits кажутся прекрасными

[root@proxy3 httpd]# sysctl -a | grep сем
ядро.sem = 32000 1024000000 500 32000

[root@proxy3 httpd]# ipcs -l

------ Лимит сообщений --------
максимальное количество очередей по всей системе = 32000
максимальный размер сообщения (байт) = 8192
максимальный размер очереди по умолчанию (байты) = 16384

------ Пределы общей памяти --------
максимальное количество сегментов = 4096
максимальный размер сегмента (кбайт) = 18014398509465599
максимальная общая общая память (кбайт) = 18014398509481980
минимальный размер сегмента (байты) = 1

------ Ограничения семафора --------
максимальное количество массивов = 32000
максимальное количество семафоров на массив = 32000
максимальное количество семафоров в системе = 1024000000
максимальное количество операций на вызов semop = 500
максимальное значение семафора = 32767

[root@proxy3 httpd]# ulimit
неограниченный

Информация о версии

[журнал root@proxy3]# httpd -v
Версия сервера: Apache/2.4.37 (centos)
Сервер построен: 20 мая 2021 04:33:06

[журнал root@proxy3]# uname -r
4.18.0-305.19.1.el8_4.x86_64

Что еще я могу сделать, чтобы отладить/исправить этот режим отказа? Мой текущий обходной путь — просто перезапустить службу после ее закрытия, однако это всего лишь временное решение.

Рейтинг:0
флаг cn

Проверьте свободное место и размер каталога из сообщения об ошибке:

df -h /etc/httpd/run/
du -h /etc/httpd/run/*

Пакет Red Hat httpd имеет символическую ссылку /etc/httpd/run/ -> /run/httpd. Помещает хранилище httpd DefaultRuntimeDir в системный tmpfs, не меняя соглашения о том, что оно живет относительно ServerRoot. Обратите внимание, что это означает, что вы должны обратить внимание на /run.

Что код журнала 02611 тем не мение? Модуль mod_slotmem_shm который предоставляет API общей памяти, Generic, поэтому проверьте все загруженные модули на предмет того, используют ли они это для обмена состоянием между рабочими процессами. Приблизительный порядок величины возможного увеличения размера на основе наблюдений и планирования емкости.

Что касается того, как смягчить проблему, предполагая, что tmpfs заполняется, выделение хосту немного больше памяти может дать ему больше места. Или вы можете настроить MPM так, чтобы у него было меньше рабочих процессов, или иным образом настроить конфигурацию, чтобы иметь меньше общего состояния. Наконец, рассмотрите возможность перемещения DefaultRuntimeDir во временный каталог с достаточным пространством.

Карты общей памяти, поддерживаемые файлами, не являются System V shm, которые вы можете увидеть с помощью ipcs. APR является переносимым и предоставляет множество опций, но я думаю, что в этой ОС он основан на файлах и mmap.

Что касается места, то 363 МБ доступно на 91%, это не так много свободного места, даже на небольшом хосте. Такие вещи, как файлы журналов и транзакции обновления пакетов, обычно требуют большего.

флаг co
`run -> /run/httpd`, который _поддерживается tmpfs, но даже в нем достаточно места. Я собираюсь попробовать расширить rootfs, чтобы получить больше накладных расходов.
Рейтинг:0
флаг cn

У вас есть только 350Mio доступных в вашей файловой системе /. Вы уверены, что этого достаточно? Во всех случаях потребление более 90% дискового пространства должно быть критическим фактом ;)

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.