"bash: 포크: 메모리를 할당할 수 없습니다"라고 보고하는 Linux 3.x를 실행하는 64비트 서버가 있습니다. 서버에 충분한 RAM(64G)과 스왑(128G)이 있어 특정 프로세스가 원인인지 확인할 수 없습니다(명백한 메모리 누수 없음).
이 셸에서는 아무것도 실행되지 않고 문제는 루트로도 존재하기 때문에 "ulimit"로 제한되지 않습니다. top 또는 cat /proc/whatever를 입력하더라도 95%의 시간 동안 "bash: 포크: 메모리를 할당할 수 없습니다"가 트리거되므로 서버 디버깅은 좀 더 복잡합니다.
몇 가지 검사를 수행했습니다. - 일부 메모리가 남아 있습니다(총 할당된 공간이 스왑 공간보다 작습니다). - ulimit 없음 - 명확한 문제 없음, 로그에 메시지 없음, dmesg에 메시지 없음 - 가상 메모리가 소진되지 않음(내가 확인한 한)
같은 문제가 또 발생하면 무엇을 확인해야 하나요? ulimit/제한된 스왑 공간/소진되지 않은 가상 공간 외에 메모리를 할당할 수 없는 이유는 무엇일까요? 물론 재부팅하면 문제가 (일시적으로) 해결되었지만 문제가 발생하여 상당히 놀랐습니다.
답변1
이 문제는 Windows 설치 요청 오류와 관련된 것으로 생각됩니다. Unix 분기 프로세스가 Windows에서 메시지를 반환할 때 일종의 오류가 있는 것 같습니다.
이는 리소스 "A"를 직접 또는 간접적으로 요청하는 다른 영역에 영향을 미칩니다. 최근 가상 머신과 관련된 사건을 본 적이 있습니다.