nGinx постоянно отключается

nGinx постоянно отключается

Процесс nginx постоянно отключается, вот ошибки

2023/04/18 11:47:29 [alert] 11073#0: worker process 11312 exited on signal 9
2023/04/18 11:47:29 [alert] 11073#0: fork() failed while spawning "worker process" (12: Cannot allocate memory)
2023/04/18 11:47:29 [alert] 11073#0: could not respawn worker process

Я знаю, что у него достаточно оперативной памяти, это VPS, которым я управляю, и я увеличил его оперативную память до 4 ГБ, и все равно то же самое. Это очень легкий сервер nginx, без PHP, простая передача изображений. Работает на nginx 1.0.15, я знаю, что он старый, но он работал много лет без проблем. Ничего не менялось на этом VPS годами.

решение1

fork() failed while spawning "worker process" (12: Cannot allocate memory) Вот в чем подсказка.

Если вы посмотрите, man 2 forkто сможете узнать, какие условия приводят к такому положению.

ENOMEM fork()не удалось выделить необходимые структуры ядра из-за нехватки памяти.

ENOMEMБыла сделана попытка создать дочерний процесс в пространстве имен PID, процесс "init" которого завершился. См. pid_namespaces(7).

Должно быть одно из этих двух условий. Весь VPS примерно в одно и то же время перезапускается? Если да, то вот вам ответ.

Если вы не можете сказать наверняка, вы можете проверить это, выполнив действия ps -o lstart 1в контейнере и проверив, когда initбыл запущен процесс.

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

решение2

На основании предоставленного вами сообщения об ошибке, похоже, что рабочий процесс завершается из-за signal 9, что указывает на SIGKILLсигнал. Кроме того, сообщение об ошибке предполагает, что fork() system call is failing, что означает, что процесс не может создать новый дочерний процесс.

Сообщение об ошибке "Невозможно выделить память" предполагает, что в системе может заканчиваться память, что может приводить к сбою системного вызова fork(). Одним из возможных решений этой проблемы является увеличение объема памяти, доступной системе.

Вы можете попробовать проверить доступную память на вашем сервере с помощью команды "free -tm", которая отобразит информацию о доступной памяти и пространстве подкачки. Если в системе мало памяти, вам может потребоваться добавить больше памяти на ваш сервер или изменить конфигурацию nginx, чтобы использовать меньше памяти.

Другим возможным решением является уменьшение количества рабочих процессов в конфигурации nginx. Это можно сделать, изменив параметр "worker_processes" в файле nginx.conf. Уменьшив количество рабочих процессов, можно уменьшить использование памяти сервером nginx.

решение3

Добавлятьменять. Также убедитесь, что нет никаких проблем с учетными данными/привилегиями.

Также, ссылаясь наэтотвопрос, где какое-то приложение было ограничено оперативной памятью, которую оно могло использовать. Что делают эти рабочие? Это может быть вашим ответом.

А вы пробовали?обновлятьвсе?

Связанный контент