tencent cloud

피드백

로그 오류 보고 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
    
    문의하기

    고객의 업무에 전용 서비스를 제공해드립니다.

    기술 지원

    더 많은 도움이 필요하시면, 티켓을 통해 연락 바랍니다. 티켓 서비스는 연중무휴 24시간 제공됩니다.

    연중무휴 24시간 전화 지원