Мой сервер иногда заполняется соединениями в apache, застрявшими в состоянии «Отправка ответа», что требует перезапуска apache. В большинстве случаев это работает, но иногда я получаю эту ошибку при попытке перезапустить apache:
Задание для httpd.service завершилось неудачно, поскольку процесс управления завершился с кодом ошибки. См. "Systemctl status httpd.service" и "journalctl -xe" для подробностей.
Бег systemctl status httpd.service
или journalctl -xe
как предлагается, затем возвращает следующую соответствующую информацию:
15 ноября, 06:24:06 hostname.biologyreporter.com systemd-logind [874]: не удалось удалить каталог времени выполнения / run / user / 1067: устройство или ресурс занят
15 ноября, 06:24:27 hostname.biologyreporter.com restartsrv_httpd [29484]: [Пятница, 15 ноября 06: 24: 27.255594 2019] [core: Emerg] [pid 29509: tid 47498001208384] (28) На устройстве не осталось места: AH00023 : Не удалось создать мьютекс mpm-accept
15 ноября, 06:24:27 hostname.biologyreporter.com restartsrv_httpd [29484]: (28) На устройстве не осталось места: не удалось создать мьютекс принятия
15 ноября, 06:24:27 hostname.biologyreporter.com restartsrv_httpd [29484]: AH00015: Невозможно открыть журналы 15 ноября 06:24:27 hostname.biologyreporter.com systemd [1]: httpd.service: процесс управления завершен, код = статус выхода = 1
15 ноября, 06:24:27 hostname.biologyreporter.com systemd [1]: не удалось запустить веб-сервер Apache, управляемый cPanel EasyApache.
- Тема: Ошибка модуля httpd.service
Затем может потребоваться около 10 минут для фактического перезапуска apache и возобновления работы веб-сайта. Я не знаю, почему он говорит "На устройстве не осталось места" как работающий df
, например, возвращает следующее (нигде не занято 100% места):
Filesystem 1K-blocks Used Available Use% Mounted on
devtmpfs 3973024 0 3973024 0% /dev
tmpfs 3983400 0 3983400 0% /dev/shm
tmpfs 3983400 255296 3728104 7% /run
tmpfs 3983400 0 3983400 0% /sys/fs/cgroup
/dev/sda2 952008348 137586024 766039760 16% /
/dev/sda1 999320 134892 795616 15% /boot
/dev/loop0 3997376 8856 3778808 1% /tmp
tmpfs 796684 0 796684 0% /run/user/0
tmpfs 796684 0 796684 0% /run/user/1022
Мне не удалось найти какой-либо достоверной информации о причине и решении конкретной ошибки (ошибок), перечисленных выше («На устройстве не осталось места: AH00023: не удалось создать мьютекс mpm-accept» и «Не удалось удалить каталог времени выполнения / run / user / 1067: устройство или ресурс занят »). Что мне делать, чтобы решить эту проблему, чтобы эти ошибки не появлялись, а apache всегда перезагружался без проблем?
Скорее всего, это вызвано ограничением семафоров ОС, а Apache не очищает должным образом после себя.
Подробнее об ограничениях семафоров https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/5/html/tuning_and_optimizing_red_hat_enterprise_linux_for_oracle_9i_and_10g_databases/sect-oracle_9i_and_10g_tuning_guide-setting_parating_guide-setting_setting_guide-setting_semeters
Эти ошибки означают, что в системе не хватает ресурсов связи внутри процесса, таких как семафоры или сегменты разделяемой памяти. Попробуйте запустить следующий, чтобы увидеть, достигнут ли предел семафоров, и посмотрите результаты:
ipcs -s | wc -l
cat /proc/sys/kernel/msgmni
cat /proc/sys/kernel/sem
Выполните следующую команду через SSH или консоль и посмотрите, поможет ли это:
ipcs -s | awk -v user=apache '$3==user {system("ipcrm -s "$2)}'