tencent cloud

Linux 인스턴스 로그 오류 fork: Cannot allocate memory
마지막 업데이트 시간:2024-02-02 11:09:48
Linux 인스턴스 로그 오류 fork: Cannot allocate memory
마지막 업데이트 시간: 2024-02-02 11:09:48

현상 설명

로그에 아래 이미지와 같이 ‘fork: Cannot allocate memory’. 오류 보고가 나타납니다.



예상 원인

가능한 원인은 프로세스 수 초과입니다. 시스템 내부의 총 프로세스 수가 pid_max 에 도달하면 신규 프로세스 생성 시 ‘fork: Cannot allocate memory’ 오류가 보고됩니다.

해결 방법

1. 처리 순서를 참고하여 인스턴스 메모리 사용률이 지나치게 높지는 않은지 확인합니다.
2. 총 프로세스 수가 제한을 초과하는지 확인하고 총 프로세스 수 'pid_max'의 설정을 수정합니다.

처리 순서

1. 지나치게 높은 인스턴스 메모리 사용률을 참고하여 인스턴스 메모리 사용률을 확인합니다. 인스턴스 메모리 사용률이 정상이라면 다음 단계를 실행합니다.
2. 다음 명령어를 실행하여 시스템의 pid_max 값을 조회합니다.
sysctl  -a | grep pid_max
반환된 결과에 따라 해당 작업을 수행합니다.
반환된 결과는 아래 이미지와 같으며, pid_max의 기본값은 32768입니다. 다음 단계로 이동하십시오.


‘fork:Cannot assign memory’ 오류 메시지가 반환되면 다음 명령어를 실행하여 일시적으로 pid_max를 늘려야 합니다.
echo 42768 > /proc/sys/kernel/pid_max
명령어를 다시 실행하여 시스템의 pid_max 값을 조회할 수 있습니다.
3. 다음 명령어를 실행하여 시스템 내부의 총 프로세스 수를 조회합니다.
pstree -p | wc -l
총 프로세스 수가 pid_max에 도달하면 신규 프로세스 생성 시 시스템에서 'fork: Cannot allocate memory' 오류가 보고됩니다.
설명:
ps -efL 명령어를 실행하여 프로세스 수가 비교적 많은 프로그램을 파악합니다.
4. 프로세스 수를 늘리기 위해 /etc/sysctl.conf 설정 파일의 kernel.pid_max 값을 65535로 수정합니다. 수정이 완료되면 다음과 같은 화면이 나타납니다.

5. 아래의 명령어를 실행하여 설정을 즉시 활성화합니다.
sysctl -p

문제 해결에 도움이 되었나요?
더 자세한 내용은 문의하기 또는 티켓 제출 을 통해 문의할 수 있습니다.
아니오

피드백