tencent cloud

피드백

Linux 인스턴스: CPU 혹은 메모리 점유율이 높아 로그인 할 수 없을 경우

마지막 업데이트 시간:2024-02-02 11:09:48
    본 문서는 높은 CPU 또는 메모리 사용량으로 인한 Linux CVM 로그인 실패와 같은 문제를 진단하고 해결하는 방법을 설명합니다.

    예상 원인

    CPU 또는 메모리 사용량이 지나치게 높으면 서비스 응답 속도가 느려지거나 서버에 로그인할 수 없는 등의 문제가 발생할 수 있습니다. CPU 또는 메모리 사용량이 지나치게 높아지는 이유는 하드웨어, 시스템 프로세스, 비즈니스 프로세스 또는 트로이 목마 바이러스 등이 원인일 수 있습니다. 클라우드 모니터링을 사용해 CPU 또는 메모리 사용량 임계 값 알림을 생성함으로써 CPU 또는 메모리 사용량이 임계 값을 초과할 경우, 즉시 사용자에게 공지하도록 설정할 수 있습니다.

    진단 툴

    Top: 프로세스별 CPU 또는 메모리 사용량을 얻기 위해 일반적으로 사용되는 Linux의 모니터링 도구입니다. top 명령의 출력 정보는 다음과 같습니다.
    
    Top 명령 출력은 두 부분으로 구성됩니다. 상단에는 CPU 및 메모리 리소스의 일반적인 사용량이 표시됩니다.
    첫째 줄: 시스템 현재 시간, 현재 로그인 사용자 개수 및 시스템 부하.
    둘째 줄: 시스템 전체 프로세스 수, 실행 중인 프로세스 수, 휴면/수면/좀비 프로세스 수입니다.
    셋째 줄: 현재 CPU 사용 상황.
    넷째 줄: 현재 메모리 사용 상황.
    다섯째 줄: 현재 Swap 용량 사용 상황.
    하단에는 프로세스별 리소스 사용량 표시:
    PID: 프로세스 ID.
    USER: 프로세스 소유자.
    PR: 프로세스 우선 순위. NI는 NICE 값입니다. NICE 값이 작을수록 우선 순위가 높습니다.
    VIRT: 사용하는 버츄얼 메모리 사이즈, 단위 KB.
    RES: 현재 사용 중인 메모리 사이즈, 단위 KB.
    SHR: 사용하는 공유 메모리의 사이즈, 단위 KB.
    S: 프로세스 상태.
    %CPU: 업데이트 시간 간격 내 프로세스가 사용하는 CPU 시간의 백분율.
    %MEM: 업데이트 시간 간격 내 프로세스가 사용하는 메모리의 백분율.
    TIME+: 프로세스가 사용하는 CPU 시간, 0.01s 단위까지 정확합니다.
    COMMAND: 프로세스 이름.

    장애 처리

    CVM 로그인

    실제 필요에 따라 CVM 로그인 방법을 선택하십시오.
    타사 소프트웨어를 통해 원격으로 Linux CVM 인스턴스에 로그인합니다.
    주의사항:
    Linux CVM 인스턴스가 CPU 고부하 상태이면 높으면 로그인에 실패할 수 있습니다.
    주의사항:
    Linux CVM 인스턴스가 CPU 고부하 상태이면 콘솔에서 로그인할 수 있습니다.

    프로세스의 리소스 사용량 보기

    다음 명령을 실행하여 시스템 부하를 확인합니다. ‘%CPU’ 및 ‘%MEM’ 열을 보고 더 많은 리소스를 소비하는 프로세스를 식별합니다.
    top

    분석 프로세스

    작업 관리자 페이지에서 프로세스를 분석하여 문제를 해결합니다.
    서비스 프로세스로 인해 문제가 발생한 경우 서비스 프로세스를 최적화할 수 있는지 분석하여 그에 따라 프로세스를 최적화하거나 인스턴스 구성 변경합니다.
    예외 프로세스로 의해 문제가 발생한 경우 인스턴스에 바이러스가 있을 수 있습니다. 이 경우 프로세스를 종료하거나 바이러스 백신 프로그램을 사용하여 바이러스를 제거할 수 있습니다. 필요한 경우 데이터를 백업하고 운영 체제를 다시 설치하십시오.
    문제가 Tencent Cloud 컴포넌트 프로세스로 인해 발생한 경우 티켓 제출을 통해 도움을 요청하십시오. 일반적인 Tencent Cloud 컴포넌트는 다음과 같습니다.
    sap00x: 보안 컴포넌트
    Barad_agent: 모니터링 컴포넌트
    secu-tcs-agent: 보안 컴포넌트

    종료 프로세스

    1. 다른 프로세스의 리소스 소비를 비교하고 종료해야 하는 프로세스의 PID를 기록합니다.
    2. 'k'를 입력합니다.
    3. 다음 그림과 같이 종료해야 하는 프로세스의 PID를 입력하고 Enter 키를 눌러 종료합니다. PID가 23인 프로세스를 종료해야 한다고 가정합니다.
    
    
    주의사항:
    Enter 키를 누른 후 kill PID 23 with signal [15]:가 나타나면 Enter 키를 다시 눌러 기본 설정을 유지합니다.
    4. 작업이 성공하면 Send pid 23 signal [15/sigterm] 메시지가 나타납니다. Enter를 눌러 종료를 확인합니다.

    기타 관련 문제

    CPU 사용량은 낮지만 평균 부하가 높음

    원인

    Load average는 CPU 부하의 지표입니다. 평균 부하가 높을수록 보류 중인 프로세스의 큐가 길어집니다. top 명령이 실행된 후 다음과 유사한 정보가 반환되어 CPU 사용량은 낮지만 load average는 매우 높음을 나타냅니다.
    
    

    솔루션

    다음 명령을 실행하여 아래와 같이 D 상태에 있는 프로세스가 있는지 확인합니다.
    ps -axjf
    
    
    
    설명:
    D 상태는 중단되지 않은 수면 상태를 나타냅니다. 이 상태의 프로세스는 종료될 수 없으며 자체적으로 종료될 수도 없습니다.
    D 상태의 프로세스가 많은 경우 프로세스가 종속된 리소스를 복원하거나 운영 체제를 다시 시작합니다.

    Kswapd0 프로세스의 높은 CPU 사용량

    원인

    Linux는 페이징 메커니즘을 사용하여 메모리를 관리하고 디스크의 일부를 가상 메모리로 따로 설정합니다. kswapd0은 Linux 시스템의 가상 메모리 관리에서 페이지 교체를 담당하는 프로세스입니다. 시스템 메모리가 부족하면 kswapd0이 페이지를 자주 교체하므로 CPU 사용량이 높아집니다.

    솔루션

    1. 다음 명령어를 실행하여 kswapd0 프로세스를 찾습니다.
    top
    2. kswapd0 프로세스의 상태를 확인합니다. 프로세스가 D 상태가 아니고 오랫동안 실행되어 CPU 리소스를 너무 많이 소모한 경우 3단계을 수행하여 메모리 사용량을 확인합니다.
    3. vmstat, free, ps와 같은 명령을 실행하여 시스템의 프로세스에서 사용하는 메모리 양을 확인합니다. 메모리 사용량에 따라 시스템을 다시 시작하거나 안전하지만 불필요한 프로세스를 종료합니다. si 및 so 값도 높으면 시스템에서 페이지가 자주 교체됩니다. 현재 시스템의 물리적 메모리가 더 이상 요구 사항을 충족할 수 없는 경우 시스템 메모리 업그레이드를 고려하십시오.
    문의하기

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

    기술 지원

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

    연중무휴 24시간 전화 지원