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

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

Пример:

/config/aaaa/*.conf
/config/bbbb/*.conf

/config/active -> /config/aaaa

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

require /config/active/*.conf

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

После выдачи

systemctl reload httpd

Ошибка

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

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

Отладка

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

[root@proxy3 log]# df -h
Filesystem                    Size  Used Avail Use% Mounted on
/dev/mapper/cl_template-root  3.8G  3.4G  363M  91% /
tmpfs                         989M  102M  888M  11% /run
//10.3.36.10/config3          3.8G  2.6G  1.3G  68% /config

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

[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/* | wc -l
1521

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

[root@proxy3 httpd]# free
              total        used        free      shared  buff/cache   available
Mem:        2025016      408128      113756      111216     1503132     1352584

Мои семафоры и ulimits выглядят нормально

[root@proxy3 httpd]# sysctl -a | grep sem
kernel.sem = 32000      1024000000      500     32000

[root@proxy3 httpd]# ipcs -l

------ Messages Limits --------
max queues system wide = 32000
max size of message (bytes) = 8192
default max size of queue (bytes) = 16384

------ Shared Memory Limits --------
max number of segments = 4096
max seg size (kbytes) = 18014398509465599
max total shared memory (kbytes) = 18014398509481980
min seg size (bytes) = 1

------ Semaphore Limits --------
max number of arrays = 32000
max semaphores per array = 32000
max semaphores system wide = 1024000000
max ops per semop call = 500
semaphore max value = 32767

[root@proxy3 httpd]# ulimit
unlimited

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

[root@proxy3 log]# httpd -v
Server version: Apache/2.4.37 (centos)
Server built:   May 20 2021 04:33:06

[root@proxy3 log]# uname -r
4.18.0-305.19.1.el8_4.x86_64

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

0
задан 2 November 2021 в 00:27
2 ответа

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

0
ответ дан 2 November 2021 в 08:21

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

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%, не так уж и много, даже на небольшом хосте. Такие вещи, как файлы журналов и транзакции обновления пакетов, обычно требуют большего.

0
ответ дан 4 November 2021 в 14:20

Теги

Похожие вопросы