현상 설명
로그에 아래 이미지와 같이 ‘fork: Cannot allocate memory’. 오류 보고가 나타납니다.
예상 원인
가능한 원인은 프로세스 수 초과입니다. 시스템 내부의 총 프로세스 수가 pid_max
에 도달하면 신규 프로세스 생성 시 ‘fork: Cannot allocate memory’ 오류가 보고됩니다.
해결 방법
1. 처리 순서를 참고하여 인스턴스 메모리 사용률이 지나치게 높지는 않은지 확인합니다. 2. 총 프로세스 수가 제한을 초과하는지 확인하고 총 프로세스 수 'pid_max'의 설정을 수정합니다.
처리 순서
2. 다음 명령어를 실행하여 시스템의 pid_max
값을 조회합니다.
반환된 결과에 따라 해당 작업을 수행합니다.
반환된 결과는 아래 이미지와 같으며, pid_max
의 기본값은 32768입니다. 다음 단계로 이동하십시오.
‘fork:Cannot assign memory’ 오류 메시지가 반환되면 다음 명령어를 실행하여 일시적으로 pid_max
를 늘려야 합니다.
echo 42768 > /proc/sys/kernel/pid_max
명령어를 다시 실행하여 시스템의 pid_max
값을 조회할 수 있습니다.
3. 다음 명령어를 실행하여 시스템 내부의 총 프로세스 수를 조회합니다.
총 프로세스 수가 pid_max
에 도달하면 신규 프로세스 생성 시 시스템에서 'fork: Cannot allocate memory' 오류가 보고됩니다.
설명:
ps -efL
명령어를 실행하여 프로세스 수가 비교적 많은 프로그램을 파악합니다.
4. 프로세스 수를 늘리기 위해 /etc/sysctl.conf
설정 파일의 kernel.pid_max
값을 65535로 수정합니다. 수정이 완료되면 다음과 같은 화면이 나타납니다.
5. 아래의 명령어를 실행하여 설정을 즉시 활성화합니다.
문제 해결에 도움이 되었나요?