VM 성능 문제 해결


이 문서에서는 Compute Engine 가상 머신(VM) 인스턴스에서 CPU, 메모리, 스토리지 성능 문제를 진단하고 완화하는 방법을 보여줍니다.

시작하기 전에

성능 측정항목 보기

VM의 성능 측정항목을 보려면 Google Cloud 콘솔에서 제공하는 Cloud Monitoring 관측 가능성 측정항목을 사용합니다.

  1. Google Cloud Console에서 VM 인스턴스 페이지로 이동합니다.

    VM 인스턴스로 이동

  2. 개별 VM 또는 리소스를 가장 많이 사용하는 5개 VM의 측정항목을 볼 수 있습니다.

    개별 VM의 측정항목을 보려면 다음 안내를 따르세요.

    1. 성능 측정항목을 보려는 VM의 이름을 클릭합니다. VM 인스턴스 세부정보 페이지가 열립니다.

    2. 관측 가능성 탭을 클릭하여 관측 가능성 개요 페이지를 엽니다.

    리소스를 가장 많이 사용하는 5개 VM의 측정항목을 보려면 VM 인스턴스 페이지에서 관측 가능성 탭을 클릭합니다.

  3. VM 성능 측정항목을 살펴봅니다. 개요, CPU, 메모리, 네트워크, 디스크 섹션에서 각 주제에 대한 자세한 측정항목을 확인할 수 있습니다. 다음은 VM 성능을 나타내는 주요 측정항목입니다.

    • 개요 페이지에서 다음을 확인합니다.

      • CPU 사용률. VM에서 사용하는 CPU의 비율입니다.

      • 메모리 사용률. 디스크 캐시를 제외하고 VM에서 사용하는 메모리의 비율입니다. Linux VM의 경우에는 커널 메모리도 제외됩니다.

      • 네트워크 트래픽. 1분 간격으로 송수신되는 바이트의 평균 속도입니다.

      • VM/외부/Google과의 새 연결. 동종 앱 유형별로 그룹화된 1분 동안 예상되는 고유한 TCP/UDP 흐름 수입니다.

      • 디스크 처리량. 디스크에서 쓰거나 읽는 평균 바이트 속도입니다.

      • 디스크 IOPS. 디스크에 대한 평균 I/O 읽기 및 쓰기 작업 속도입니다.

    • 네트워크 요약 페이지에는 다음과 같은 측정항목이 있습니다.

      • VM/외부/Google로 전송됨. 패킷 샘플을 기반으로 한 Google 서비스, VM, 외부 대상으로 전송된 네트워크 트래픽 속도입니다. 합계가 전송된 총 네트워크 트래픽과 일치하도록 측정항목이 조정됩니다.

      • VM/외부/Google에서 수신됨. 패킷 샘플을 기반으로 한 Google 서비스, VM, 외부 소스에서 수신된 네트워크 트래픽 속도입니다. 합계가 수신된 총 네트워크 트래픽과 일치하도록 측정항목이 조정됩니다.

      • 네트워크 패킷 합계. 1분 간격으로 송수신되는 패킷의 총 속도입니다.

      • 패킷 평균 크기. 1분 간격으로 전송 및 수신되는 패킷의 평균 크기(바이트)입니다.

      • 방화벽 수신 패킷 거부됨. VM에 전송되었지만 방화벽 규칙에서 거부되어 VM에서 수신되지 않은 수신 네트워크 패킷의 속도입니다.

    • 디스크 성능 페이지에서 다음을 확인합니다.

      • I/O 크기 평균. 디스크에 대한 I/O 읽기 및 쓰기 작업의 평균 크기입니다. 작은(4~16KiB) 임의 I/O는 일반적으로 IOPS로 제한되며 순차/큰(256KiB~1MiB) I/O는 처리량으로 제한됩니다.

      • 큐 길이 평균. 상위 5개 기기에서 큐에 추가되어 실행 중인 디스크 I/O 작업 수(큐 깊이라고도 함)입니다. 영구 디스크의 성능 한도에 도달하려면 높은 I/O 큐 깊이를 사용하세요. 영구 디스크는 네트워크 연결 스토리지이며 일반적으로 물리적 디스크나 로컬 SSD에 비해 지연 시간이 깁니다.

      • I/O 지연 시간 평균. VM의 운영 에이전트에 의해 측정되는 VM에 연결된 모든 디스크 관련 작업을 집계한 I/O 읽기 및 쓰기 작업의 평균 지연 시간입니다. 이 값에는 운영체제와 파일 시스템 처리 지연 시간이 포함되며 큐 길이 및 I/O 크기에 따라 달라집니다.

성능 측정항목 이해

VM 성능은 VM이 실행되는 하드웨어, VM에서 실행되는 워크로드, VM의 머신 유형의 영향을 받습니다. 하드웨어에서 VM의 워크로드 또는 네트워크 트래픽을 지원할 수 없으면 VM 성능이 영향을 받을 수 있습니다.

CPU 및 메모리 성능

하드웨어 세부정보

CPU와 메모리 성능은 다음 하드웨어 제약조건의 영향을 받습니다.

  • 각 가상 CPU(vCPU)는 CPU 프로세서에서 단일 하드웨어 멀티 스레드로 구현됩니다.
  • Intel Xeon CPU 프로세서는 단일 프로세서 코어에서 여러 앱 스레드를 지원합니다.
  • C2 머신 유형을 사용하는 VM은 고정된 가상-물리적 코어 매핑을 포함하며 NUMA 셀 아키텍처를 게스트 OS에 노출합니다.
  • 게스트 환경에는 기본 주파수만 알려지지만 대부분의 VM은 CPU 플랫폼에 나와 있는 All-Core Turbo 주파수를 가져옵니다.
  • 공유 코어 머신 유형은 컨텍스트 전환을 사용하여 멀티태스킹을 위해 vCPU 간에 물리적 코어를 공유합니다. 또한 VM의 CPU 사용률이 100%를 초과할 수 있는 버스팅 기능도 제공합니다. 자세한 내용은 공유 코어 머신 유형을 참조하세요.

VM의 CPU와 메모리 성능을 이해하려면 CPU 사용률메모리 사용률성능 측정항목을 확인합니다. 또한 프로세스 측정항목을 사용하면 현재 실행 중인 프로세스를 보거나 특정 프로세스에서 리소스 소비에 이상이 있는지 확인하거나 VM에서 리소스를 가장 많이 소비하는 프로세스를 식별할 수 있습니다.

지속적으로 CPU나 메모리 사용률이 높으면 VM을 수직 확장해야 합니다. VM에서 지속적으로 CPU나 메모리를 90% 이상 사용하는 경우 vCPU 또는 메모리가 더 많은 머신 유형으로 VM 머신 유형을 변경합니다.

네트워크 성능

하드웨어 세부정보

네트워크 성능은 다음 하드웨어 제약조건의 영향을 받습니다.

VM의 네트워크 성능을 이해하려면 네트워크 패킷 합계, 패킷 평균 크기, VM/외부/Google과의 새 연결, VM/외부/Google로 전송됨, VM/외부/Google에서 수신됨, 방화벽 수신 패킷 거부됨에서 성능 측정항목을 확인합니다.

네트워크 패킷 합계, 패킷 평균 크기, VM/외부/Google과의 새 연결이 워크로드에 일반적인 값을 기록하는지 검토합니다. 예를 들어 웹 서버에는 많은 연결과 작은 패킷이 발생할 수 있는 반면, 데이터베이스에서는 적은 수의 연결과 큰 패킷이 발생할 수 있습니다.

전송된 네트워크 트래픽이 지속적으로 높으면 이그레스 대역폭 한도가 더 높은 머신 유형으로 VM 머신 유형을 변경해야 할 수도 있습니다.

방화벽에서 거부되는 수신 패킷이 많다면 Google Cloud 콘솔의 네트워크 인텔리전스 방화벽 통계 페이지를 방문해 거부된 패킷의 출처에 대해 자세히 알아보세요.

방화벽 통계 페이지로 이동

고유 트래픽이 방화벽에 의해 잘못 거부된 경우에는 연결 테스트 실행을 시도해 보세요.

VM이 다른 영역 또는 리전의 VM에서 대량의 트래픽을 전송 및 수신하는 경우 지연 시간을 늘리고 비용을 낮추기 위해 영역 또는 리전 내에 더 많은 데이터를 유지하도록 워크로드를 수정해보세요. 자세한 내용은 가격 책정 페이지에서 'Google Cloud 내에서 VM간 아웃바운드 데이터 전송 가격 책정'을 참조하세요. VM이 동일한 영역 내에서 대량의 트래픽을 다른 VM으로 전송할 경우 낮은 네트워크 지연 시간을 달성하기 위해 압축 배치 정책을 고려해보세요.

스토리지 성능

하드웨어 세부정보

스토리지는 다음 하드웨어 제약조건의 영향을 받습니다.

  • 모든 영구 디스크의 총 크기와 vCPU 수를 함께 고려하여 총 스토리지 성능을 결정합니다. VM에 연결된 영구 디스크의 유형이 다른 경우 VM의 모든 디스크에서 SSD 영구 디스크 성능 한도를 공유합니다. 자세한 내용은 블록 스토리지 성능을 참조하세요.
  • Persistent Disk와 하이퍼디스크가 아웃바운드 데이터 전송 트래픽과 경합할 경우 최대 아웃바운드 네트워크 대역폭의 60%가 Persistent Disk와 하이퍼디스크에 사용되고 나머지 40%는 아웃바운드 네트워크 데이터 전송에 사용될 수 있습니다. 자세한 내용은 성능에 영향을 미치는 기타 요인을 참조하세요.
  • I/O 크기와 큐 깊이 성능은 워크로드에 따라 다릅니다. 일부 워크로드는 전체 I/O 크기와 큐 깊이 성능 한도를 사용하기에 충분히 크지 않을 수 있습니다.
  • VM 머신 유형은 스토리지 성능에 영향을 미칩니다. 자세한 내용은 머신 유형 및 vCPU 개수를 참조하세요.

VM의 스토리지 성능을 이해하려면 처리량, 작업(IOPS), I/O 크기, I/O 지연 시간, 큐 길이성능 측정항목을 확인합니다.

디스크 처리량과 IOPS는 VM 워크로드가 예상대로 작동하는지 여부를 나타냅니다. 처리량이나 IOPS가 디스크 유형 차트에 나와 있는 예상 최댓값보다 낮으면 I/O 크기, 큐 길이 또는 I/O 지연 시간 성능 문제가 발생할 수 있습니다.

높은 IOPS와 짧은 지연 시간이 필요한 워크로드의 경우 I/O 크기는 4~16KiB이고 순차 또는 큰 쓰기 크기와 관련된 워크로드의 경우 256KiB~1MiB입니다. 이 범위를 벗어나는 I/O 크기는 디스크 성능 문제를 나타냅니다.

큐 깊이라고도 하는 큐 길이는 처리량과 IOPS의 요소입니다. 디스크 성능이 우수한 경우 큐 길이는권장되는 I/O 큐 깊이 차트에 나와 있는 특정 처리량이나 IOPS 수준을 얻기 위해 권장되는 큐 길이와 동일해야 합니다.

I/O 지연 시간은 큐 길이와 I/O 크기에 따라 다릅니다. 디스크의 큐 길이나 I/O 크기가 높으면 지연 시간도 길어집니다.

스토리지 성능 측정항목에서 디스크 성능 문제를 나타내면 다음 중 하나 이상을 수행합니다.