컴퓨팅 인스턴스 성능 문제 해결


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

시작하기 전에

성능 측정항목 보기

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

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

    VM 인스턴스로 이동

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

    개별 인스턴스의 측정항목을 보려면 다음을 수행합니다.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

성능 측정항목 이해

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

CPU 및 메모리 성능

하드웨어 세부정보

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

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

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

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

네트워크 성능

하드웨어 세부정보

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

  • 머신 유형마다 특정한 이그레스 대역폭 한도가 적용됩니다. 인스턴스 머신 유형의 최대 이그레스 대역폭을 찾으려면 인스턴스 머신 계열에 해당하는 페이지를 방문하세요.
  • VM에 네트워크 인터페이스를 더 추가하거나 네트워크 인터페이스당 추가 IP 주소를 추가해도 VM의 인그레스 또는 이그레스 네트워크 대역폭이 늘어나지 않지만 일부 머신 유형은 더 높은 대역폭으로 구성할 수 있습니다. 자세한 내용은 더 높은 대역폭의 VM 구성을 참조하세요.

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

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

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

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

방화벽 통계 페이지로 이동

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

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

베어메탈 인스턴스

VM 인스턴스와 달리 베어메탈 인스턴스에서는 C6 및 C1E 절전 모드가 사용 중지되지 않습니다. 이로 인해 유휴 코어가 절전 모드로 전환되고 베어메탈 인스턴스의 네트워크 성능이 저하될 수 있습니다. 전체 네트워크 대역폭 성능이 필요한 경우 이러한 절전 상태는 운영체제에서 사용 중지할 수 있습니다.

  • 다음 스크립트를 사용하여 인스턴스를 다시 시작하지 않고도 C3 베어 메탈 인스턴스의 절전 모드를 사용 중지할 수 있습니다.

    for cpu in {0..191}; do
    echo "1" | sudo tee /sys/devices/system/cpu/cpu$cpu/cpuidle/state3/disable
    echo "1" | sudo tee /sys/devices/system/cpu/cpu$cpu/cpuidle/state2/disable
    done
    
  • 또는 인스턴스 재시작 시 변경사항이 유지되도록 GRUB 구성 파일을 업데이트할 수 있습니다.

    # add intel_idle.max_cstate=1 processor.max_cstate=1 to GRUB_CMDLINE_LINUX
    sudo vim /etc/default/grub
    sudo grub2-mkconfig -o /boot/grub2/grub.cfg
    sudo reboot
  • 재부팅 후 C6 및 C1E 절전 모드가 사용 중지되었는지 확인합니다.

    ls /sys/devices/system/cpu/cpu0/cpuidle/
    state0  state1
    
    cat /sys/devices/system/cpu/cpu0/cpuidle/state*/name
    POLL
    C1

입력-출력 메모리 관리 단위(IOMMU)는 PCI 기기에 주소 가상화를 제공하는 CPU 기능입니다. I/O translation lookaside buffer(IOTLB) 누락이 많으면 IOMMU는 네트워킹 성능에 부정적인 영향을 줄 수 있습니다.

  • 작은 페이지를 사용하면 누락될 가능성이 더 높습니다.
  • 최상의 성능을 위해 대규모 페이지(크기: 2MB~1GB)를 사용하는 것이 좋습니다.

스토리지 성능

하드웨어 세부정보

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

  • 모든 영구 디스크의 총 크기와 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 크기가 높으면 지연 시간도 길어집니다.

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

  • Persistent Disk 성능 최적화 또는 Hyperdisk 성능 최적화를 검토하고 성능 개선을 위해 제안된 권장사항을 구현합니다.
  • 새 영구 디스크를 VM에 연결하거나 VM에 Hyperdisk 스토리지를 추가하여 디스크 성능 한도를 늘립니다. 디스크 성능은 인스턴스에 연결된 총 스토리지 용량을 기반으로 합니다. 이 옵션은 파일 시스템을 마운트 해제하거나 인스턴스를 다시 시작하거나 종료할 필요가 없으므로 거의 중단되지 않습니다.
  • Hyperdisk를 수정하여 디스크당 IOPS 및 처리량 한도를 늘립니다. Persistent Disk의 경우 디스크 크기를 늘려 디스크당 IOPS 및 처리량 한도를 늘려야 합니다. 디스크에는 사용할 수 없는 예약된 용량이 없으므로 성능 저하 없이 전체 디스크를 사용할 수 있습니다.
  • 고성능을 제공하는 디스크 유형으로 디스크 유형을 변경합니다.