vCPU 소프트 락업 문제 해결


이 문서에서는 vCPU 소프트웨어 락업 문제를 해결하는 방법을 설명합니다. 소프트 락업은 가상 머신(VM) 인스턴스의 vCPU가 20초 넘는 시간 동안 새 태스크를 실행할 수 없을 때 발생합니다. 대부분의 소프트 락업은 애플리케이션 소프트웨어의 버그로 인해 발생합니다.

소프트 락업은 VM이 짧은 기간 동안 응답하지 않도록 만들고, VM에 대한 SSH 액세스를 중단시키고, 애플리케이션 제한 시간 또는 장애 조치를 트리거합니다. 소프트 락업이 발생 중인 VM은 또한 소프트웨어 락업의 정확한 원인에 따라 CPU 사용률이 비정상적으로 높거나 낮을 수 있습니다.

소프트 락업 식별

VM에 소프트 락업이 발생 중인지 식별하려면 다음 중 하나를 수행합니다.

  • 이전에 VM에 대해 직렬 포트 출력 로깅을 사용 설정했으면 직렬 포트 출력을 검토하여 소프트 락업 스택 트레이스를 확인합니다.
  • VM 운영체제 로그(/var/log/messages)를 검토하여 소프트 락업 스택 트레이스를 확인합니다.

소프트 락업 스택 트레이스 예시

watchdog: BUG: soft lockup - CPU#3 stuck for 22s!

앞으로 발생할 소프트 락업을 감지하려면 다음을 수행하면 됩니다.

  1. 직렬 포트 출력 로깅을 사용 설정합니다.

  2. 다음 로그에 대해 로그 기반 알림 정책을 만듭니다.

    resource.type="gce_instance" log_id("serialconsole.googleapis.com/serial_port_1_output") textPayload=~"watchdog.*lockup"
    

소프트 락업 문제 해결

소프트 락업이 발생 중인 것으로 확인되었으면 다음 문제 해결 단계를 시도해 보세요.

  1. OS 버전에 따라 OS 공급업체 사이트에서 알려진 오류가 있는지 확인합니다. 경우에 따라 스택 트레이스에서 관련된 특정 기능 또는 작업을 제안하는 특정 커널 모듈과 관련된 참조 자료를 찾을 수 있습니다.
  2. 특히 부하가 높거나 특정 작업 중에 소프트 락업이 반복적으로 발생하는지 식별합니다. 소프트 락업이 높은 부하와 관련된 경우 더 큰 VM을 사용하거나 부하를 더 많은 VM 간에 분할하는 등의 방식으로 워크로드를 다시 구성해야 할 수 있습니다.
  3. 소프트 락업이 새로운 소프트웨어 배포 또는 OS 이미지 업데이트 등의 런타임 환경 변경사항과 관련이 있는지 확인합니다.
  4. 감사 로그에서 시스템 이벤트 감사 로그를 검토하여 소프트 락업이 발생할 때 유지보수 이벤트가 수행되었는지 확인합니다.

위의 문제 해결 단계로도 문제가 해결되지 않으면 지원 케이스를 등록하고 문제 해결 중에 수집한 모든 정보를 포함하세요.

소프트 락업 방지를 위한 권장사항

VM에 소프트 락업이 발생하지 않도록 방지하려면 다음 권장사항을 구현하는 것이 좋습니다.

  • 특정 VM에 소프트 락업이 길게 발생할 경우 장애 조치 기능을 제공할 수 있도록 고가용성 클러스터와 같이 시스템에 적절한 중복 구성요소를 구성하는 것이 좋습니다. 자세한 내용은 복원력 있는 시스템 설계를 참조하세요.
  • 컴퓨팅 사용이 집중된 워크로드의 경우에는 컴퓨팅 최적화 머신 계열을 사용하는 것이 좋습니다.
  • 시뮬레이션된 유지보수 이벤트로 워크로드를 테스트하여 특히 부하 테스트를 수행하는 동안 라이브 마이그레이션(사용 설정된 경우) 중에 워크로드의 수행 성능을 확인하세요.
  • VM에서 커스텀 Linux 커널 또는 커스텀 모듈을 실행 중이면 프로덕션 환경에 배포하기 전에 부하 상태에서 새로운 변경사항을 테스트하세요. OS 공급업체의 지원을 받을 자격에 영향을 주는 커스텀 변경사항이 없는지 확인합니다.
  • 운영 체제를 최신 상태로 유지합니다. 자세한 내용은 운영체제 세부정보를 참조하세요.