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이고 램을 최대 4GB까지 연결했지만 여전히 마찬가지입니다. 매우 가벼운 nginx 서버이며 PHP가 없으며 간단한 이미지 제공입니다. nginx 1.0.15를 실행하면 오래되었다는 것을 알지만 수년 동안 문제 없이 작동했습니다. 몇 년 동안 이 VPS에는 아무것도 변경되지 않았습니다.

답변1

fork() failed while spawning "worker process" (12: Cannot allocate memory) 단서입니다.

살펴보면 man 2 fork어떤 조건이 그 위치로 이어지는지 알 수 있습니다.

ENOMEM fork()메모리가 부족하여 필요한 커널 구조를 할당하지 못했습니다.

ENOMEM"init" 프로세스가 종료된 PID 네임스페이스에 하위 프로세스를 생성하려고 했습니다. pid_namespaces(7)를 참조하십시오.

이 두 가지 조건 중 하나여야 합니다. 같은 시간에 전체 VPS가 다시 시작됩니까? 그렇다면 당신의 대답이 있습니다.

ps -o lstart 1컨테이너에서 수행하고 init프로세스가 시작된 시기를 확인하여 알 수 없는 경우 잠재적으로 이를 테스트할 수 있습니다 .

그렇지 않고 '메모리가 부족합니다'라는 메시지가 계속 표시된다면 전체 시스템 메모리가 부족하기 때문일 수 있습니다. 이는 컨테이너에서 귀하가 알고 있는 내용이 아니므로 호스팅 공급자에게 추가 정보를 요청해야 합니다.

답변2

signal 9제공하신 오류 메시지에 따르면 신호를 나타내는 로 인해 작업자 프로세스가 종료되는 것 같습니다 SIGKILL. 또한 오류 메시지는 fork() system call is failing프로세스가 새 하위 프로세스를 생성할 수 없음을 의미합니다.

"메모리를 할당할 수 없습니다"라는 오류 메시지는 시스템에 메모리가 부족하여 fork() 시스템 호출이 실패할 수 있음을 나타냅니다. 이 문제에 대한 한 가지 가능한 해결 방법은 시스템에서 사용할 수 있는 메모리 양을 늘리는 것입니다.

사용 가능한 메모리 및 스왑 공간에 대한 정보를 표시하는 "free -tm" 명령을 사용하여 서버에서 사용 가능한 메모리를 확인할 수 있습니다. 시스템의 메모리가 부족하면 서버에 메모리를 더 추가하거나 nginx 구성을 조정하여 더 적은 메모리를 사용해야 할 수도 있습니다.

또 다른 가능한 해결책은 nginx 구성에서 작업자 프로세스 수를 줄이는 것입니다. nginx.conf 파일에서 "worker_processes" 설정을 조정하여 이를 수행할 수 있습니다. 작업자 프로세스 수를 줄이면 nginx 서버의 메모리 사용량을 줄일 수 있습니다.

답변3

추가하다교환. 또한 자격 증명/권한 문제가 없는지 확인하십시오.

또한, 참고하여이것일부 앱이 사용할 수 있는 RAM이 제한되어 있는 질문입니다. 이 노동자들은 무엇을 하는가? 이것이 당신의 대답일지도 모릅니다.

또한, 당신은 노력했습니까?업데이트모든 것?

관련 정보