네트워크 대역폭

컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요.

Google Cloud는 네트워크 인터페이스(NIC) 또는 IP 주소당 대역폭이 아니라 가상 머신(VM) 인스턴스당 대역폭을 고려합니다. VM의 머신 유형은 가능한 최대 이그레스 속도를 정의하지만 이 가능한 최대 이그레스 속도는 특정 상황에서만 달성할 수 있습니다.

이 페이지에서는 배포를 계획할 때 유용한 기대치를 간략히 설명합니다. 이 페이지는 다음 두 가지 측정기준을 사용하여 대역폭을 분류합니다.

  • 트래픽 방향: 이 페이지에서 사용되는 트래픽 방향은 항상 Google Cloud VM의 관점에서 본 방향입니다.
    • Google Cloud VM에서 전송된 패킷은 이그레스(아웃바운드) 트래픽을 구성합니다.
    • Google Cloud VM으로 전송된 패킷은 인그레스(인바운드) 트래픽을 구성합니다.
  • 대상 IP 주소의 유형: Google Cloud는 IP 주소를 내부 또는 외부로 분류합니다.

    • VPC 네트워크 내의 IP 주소를 내부 IP 주소라고 합니다. 예를 들어 각 VM의 NIC에는 VPC 네트워크에 위치한 기본 내부 IP 주소가 있습니다. 유효한 비공개 IP 주소 범위 또는 비공개로 재사용된 공개 IP 주소 범위는 내부 IP 주소입니다.
    • 인터넷에서 액세스할 수 있는 IP 주소는 외부 IP 주소입니다. VM의 NIC에 할당된 외부 IP 주소 등 외부 IP 주소는 Google Cloud에 위치할 수 있습니다. 외부 IP 주소는 Google Cloud 외부의 인터넷 공개 IP 주소를 포함하여 항상 공개 IP 주소입니다.

    정확한 정의는 VPC 문서의 IP 주소를 참조하세요. 예를 들어 VPC 네트워크에서 공개 IP 주소를 비공개로 재사용하면 내부 IP 주소이며 해당 외부 IP 주소에 더 이상 연결할 수 없습니다.

이 페이지의 모든 정보는 Compute Engine VM 및 Compute Engine VM을 사용하는 제품에 적용됩니다. 예를 들어 Google Kubernetes Engine 노드는 Compute Engine VM입니다.

추가 네트워크 인터페이스(NIC)나 NIC별 추가 IP 주소는 VM의 인그레스 또는 이그레스 대역폭을 증가시키지 않습니다. 예를 들어 NIC 2개가 있는 n1-standard-8 VM은 NIC당 16Gbps의 이그레스 대역폭이 아니라 16Gbps의 총 이그레스 대역폭으로 제한됩니다.

대역폭 요약 표

다음 표에는 대역폭 기대치가 요약되어 있습니다.

패킷의 대상 주소
트래픽 방향 내부 IP 주소 대상 외부 IP 주소 대상
Google Cloud VM에서
이그레스
  • 가능한 최대 이그레스는 송신 VM의 머신 유형에 따라 정의됩니다. VM당 Tier_1 네트워킹 성능 구성은 최대 100Gbps까지 이그레스 대역폭 제한을 지원합니다. Tier_1 네트워킹은 N2, N2D, C2, C2D 머신 시리즈에 생성된 일부 VM의 옵션입니다. 자세한 내용은 VM당 Tier_1 네트워킹 성능 구성을 참조하세요.
  • 가능한 최대 이그레스 속도를 달성하려면 전송 VM과 동일한 영역에 있거나 동일한 VPC 네트워크에 있거나 VPC 네트워크 피어링에 연결된 VPC 네트워크에 있는 다른 Google Cloud VM과 연결된 내부 IP 주소에 트래픽을 전송하세요.
단일 VM에서 가능한 최대 이그레스는 다음을 초과할 수 없습니다.
  • 외부 IP 주소에 대한 모든 이그레스 흐름의 경우 총 7Gbps 또는 Tier_1 네트워킹을 사용하는 25Gbps
  • 외부 IP 주소로의 개별 이그레스 흐름당 3Gbps
Google Cloud VM으로
인그레스
  • 머신 유형, 운영체제, 네트워크 조건에 의해 제한됩니다.
  • Google Cloud는 내부 IP 주소로의 인그레스에 추가 제한을 적용하지 않습니다.
Google Cloud는 VM과 연결된 외부 IP 주소로 전송되는 인그레스 트래픽을 제한하여 각 VM을 보호합니다. 다음 중 먼저 도달하는 속도가 한도입니다.
  • 1,800,000pps(초당 패킷)
  • 30 Gbps

이그레스 대역폭

Google Cloud는 VM별 및 프로젝트별로 아웃바운드(이그레스) 대역폭을 제한합니다. 아웃바운드 대역폭에는 모든 VM의 NIC에서 전송되는 트래픽과 VM에 연결된 모든 영구 디스크로 전송되는 데이터가 포함됩니다.

표준 최대 이그레스 대역폭은 VM의 머신 유형에 따라 다릅니다. 최대 이그레스 대역폭은 일반적으로 vCPU당 2Gbps이지만 머신 시리즈에 따라 몇 가지 차이점과 예외가 있습니다. 다음 표에서는 VM Tier_1 네트워킹 성능이 아닌 표준 네트워킹 등급별 이그레스 대역폭의 최소 및 최대 한도를 보여줍니다.

머신 계열 표준 최소 이그레스 한도 표준 최대 이그레스 한도
E2 1Gbps 16Gbps
T2D 10Gbps 32Gbps
N2,C2, N2D, C2D 10Gbps 32Gbps
N1(vCPU 1개가 있는 VM 제외) 10Gbps Skylake CPU 플랫폼에서 32Gbps
Skylake보다 오래된 CPU 플랫폼에서 16Gbps
1개의 vCPU, f1-micro, g1-small이 있는 N1 머신 유형 2Gbps 2Gbps
A2 GPU 기준 GPU 기준

예를 들어 t2d-standard-6 머신 유형을 기반으로 하는 VM의 표준 최대 이그레스 대역폭은 12Gbps입니다. 이 값은 vCPU 6개(vCPU당 2Gbps)를 기반으로 합니다. 따라서 12Gbps가 머신 시리즈의 최솟값보다 크고 최댓값인 32를 초과하지 않습니다.

각 머신 계열 페이지에 나열된 모든 머신 유형의 최대 이그레스 대역폭을 확인할 수 있습니다.

가능한 최대 이그레스 대역폭은 보장되지 않습니다. 머신 유형 외에도 이그레스 대역폭은 다음과 같은 일부 요인의 영향을 받습니다.

  • 게스트 이더넷 드라이버: GVNIC가 VirtIO 네트워크 인터페이스보다 우수한 성능을 제공합니다.
  • 패킷 크기
  • 프로토콜 오버헤드
  • 흐름 수
  • 체크섬 오프로드 및 TCP 세분화 오프로드(TSO)와 같은 VM 게스트 OS의 이더넷 드라이버 설정
  • 네트워크 정체
  • 패킷의 목적지 - Google Cloud는 아웃바운드 패킷의 대상 주소가 내부 IP 주소인지 외부 IP 주소인지에 따라 VM의 이그레스 트래픽을 다르게 처리합니다.
  • 영구 디스크가 다른 네트워크 이그레스 트래픽과 경합하는 경우 최대 네트워크 대역폭의 60%는 영구 디스크 쓰기에 제공되고, 나머지 40%는 다른 네트워크 이그레스 트래픽을 위해 남겨집니다. 자세한 내용은 영구 디스크 문서의 성능에 영향을 미치는 기타 요인을 참조하세요.

더 높은 네트워크 대역폭을 제공하는 더 큰 범용 및 컴퓨팅 최적화 머신 유형을 사용하여 VM당 Tier_1 네트워킹 성능을 사용 설정할 수 있습니다.

내부 IP 주소 대상으로 이그레스

전송 VM의 관점에서 Google Cloud는 전송 VM의 머신 유형에 따라 내부 IP 주소 대상으로의 가능한 최대 이그레스를 제한합니다. 내부 IP 주소는 VPC 네트워크 또는 VPC 네트워크 피어링을 사용하여 연결된 다른 VPC 네트워크 또는 Cloud VPN이나 Cloud Interconnect를 사용하여 VPC 네트워크에 연결된 네트워크에 있는 주소입니다.

다음 목록의 VM 간 트래픽 순위는 내부 IP 주소 소스와 대상을 사용하여 가능한 최대 대역폭부터 가장 낮은 대역폭 순으로 나열한 것입니다.

  • 동일한 영역에 있는 VM 간
  • 같은 리전의 다른 영역에 있는 VM 간
  • 다른 리전의 다른 영역에 있는 VM 간
  • Private Service Connect를 사용하여 VM에서 Google API 및 서비스로

VM에서 Cloud VPN 터널을 사용하여 연결된 다른 VPC 네트워크에 있는 내부 IP 주소로 트래픽을 전송하는 경우 이그레스 대역폭은 Cloud VPN 터널의 최대 데이터 속도로 제한됩니다.

여러 터널과 ECMP 라우팅의 대역폭을 최대한 활용하려면 여러 TCP 연결(고유한 5튜플)을 사용해야 합니다. 5-튜플은 프로토콜, 소스 IP 주소, 소스 포트, 대상 IP 주소, 대상 포트로 구성되어 있습니다.

외부 IP 주소 대상으로 이그레스

전송 VM의 관점에서 Google Cloud는 공개 또는 외부 IP 주소 대상으로 전송되는 아웃바운드 트래픽을 다음 중 먼저 도달하는 속도로 제한합니다. 외부 IP 주소는 Google Cloud 리소스의 외부 IP 주소 또는 인터넷의 주소 등 공개적으로 라우팅 가능한 주소입니다.

  • Tier_1 네트워킹이 사용 설정된 VM의 모든 패킷 흐름 및 연결의 경우 총 25Gbps
  • Tier_1 네트워킹이 사용 설정되지 않은 VM의 모든 패킷 흐름 및 연결의 경우 총 7Gbps
  • 흐름당 3Gbps(고유 5-튜플 해시)

다음 용량 중 하나인 Google Cloud VM에 외부 IP 주소를 연결할 수 있습니다.

  • 외부 IP 주소를 VM의 네트워크 인터페이스에 할당할 수 있습니다.
  • 프로토콜 전달에 사용되는 외부 전달 규칙에는 외부 IP 주소가 필요합니다.
  • 네트워크 TCP/UDP 부하 분산기의 전달 규칙의 IP 주소에는 외부 IP 주소가 필요합니다.
  • 외부 IP 주소는 Cloud NAT 게이트웨이와 연결됩니다.

예를 들어 n2-standard-16 인스턴스의 이그레스 대역폭 한도는 32Gbps이지만 인터넷으로의 총 이그레스 대역폭은 7Gbps로 제한됩니다.

프로젝트별 집계 이그레스 할당량 및 한도

Google Cloud는 프로젝트에 다음과 같은 할당량 및 한도 또한 적용합니다.

  • 각 리전의 모든 VM에서 Google Cloud 외부의 외부 IP 주소로 전송되는 최대 인터넷 이그레스 대역폭: 이 최댓값은 각 리전의 인터넷 이그레스 대역폭 할당량에 따라 정의됩니다.

  • 특정 리전의 모든 VM에서 다른 모든 Google Cloud 리전으로 전송되는 최대 이그레스 대역폭: 내부 IP 주소 대상과 외부 IP 주소 대상 모두로 전송된 트래픽에 적용됩니다. 이 한도는 내부 원격 분석을 사용하여 계산되며 대부분의 프로젝트에서 리전 간 대역폭을 제한하지 않을 가능성이 높습니다. 필요한 리전 간 대역폭 사용량을 달성하는 방법은 영업팀에 문의하세요.

인그레스 대역폭

Google Cloud는 패킷의 대상이 내부 IP 주소인지 또는 외부 IP 주소인지에 따라 VM에 대한 인바운드 트래픽을 다르게 처리합니다.

내부 IP 주소 대상으로 인그레스

Google Cloud는 연결된 내부 IP 주소로 들어오는 트래픽에 의도적인 제한을 적용하지 않습니다. VM은 머신 유형, 운영체제, 기타 네트워크 조건 및 리소스가 허용하는 만큼 내부 트래픽을 수신할 수 있습니다. 연결된 내부 IP 주소는 다음 중 하나입니다.

  • VM 네트워크 인터페이스의 기본 내부 IP 주소
  • VM의 네트워크 인터페이스에 할당된 별칭 IP 범위의 별칭 IP 주소
  • 내부 프로토콜 전달에 사용되는 내부 전달 규칙의 IP 주소
  • 내부 TCP/UDP 부하 분산기 전달 규칙의 IP 주소

외부 IP 주소 대상으로 인그레스

Google Cloud는 VM의 연결된 외부 IP 주소로 전송되는 인바운드 트래픽을 다음 중 먼저 도달하는 속도로 제한합니다.

  • 초당 패킷 1,800,000개
  • 20Gbps

이러한 제한에서 연결된 외부 IP 주소는 다음 중 하나입니다.

  • VM의 네트워크 인터페이스에 할당된 외부 IP 주소
  • 외부 프로토콜 전달에 사용되는 외부 전달 규칙의 IP 주소
  • 네트워크 TCP/UDP 부하 분산기 전달 규칙의 IP 주소
  • Cloud NAT에서 처리된 설정된 인바운드 응답

연결된 외부 IP 주소의 마지막 두 가지 정의: 외부 IP 주소가 여러 VM 간에 공유되는 경우 Google Cloud는 각 백엔드 VM의 인바운드 트래픽을 개별적으로 제한합니다.

수신 및 전송 큐

각 VM NIC에는 네트워크에서 패킷을 처리하는 여러 수신 및 전송 큐가 할당됩니다.

  • 수신 큐(RX): 패킷을 수신할 큐입니다. NIC가 네트워크에서 패킷을 수신할 때 NIC는 큐에서 수신 패킷에 대한 설명자를 선택하고, 이를 처리하고, 중단을 통해 vCPU 코어에 연결된 패킷 큐를 통해 게스트 OS로 패킷을 전달합니다. RX 큐가 가득차고 패킷을 배치할 수 있는 버퍼가 없으면 패킷이 삭제됩니다. 이러한 현상은 일반적으로 애플리케이션에서 선택한 패킷 큐에도 연결된 vCPU 코어를 초과 활용하는 경우에 발생할 수 있습니다.
  • 전송 큐(TX): 패킷을 전송하는 큐입니다. 게스트 OS가 패킷을 전송하면 설명자가 할당되어 TX 큐에 배치됩니다. 그러면 NIC에서 설명자를 처리하고 패킷을 전송합니다.

기본 큐 할당

명시적으로 NIC에 큐 수를 할당하지 않는 한, Google Cloud가 NIC당 고정된 수의 RX 및 TX 큐를 할당하는 데 사용하는 알고리즘을 다음 방법으로 모델링할 수 있습니다.

  1. 네트워크 인터페이스 유형에 따라 다음 방법 중 하나를 사용합니다.

    • VirtIO: vCPU 수를 NIC 수로 나누고 나머지[number of vCPUs/number of NICs]를 삭제합니다.
    • GVNIC: vCPU 수를 NIC 수로 나눈 후 결과를 2로 나누고 나머지([number of vCPUs/number of NICs/2])를 삭제합니다.

    이 계산은 항상 분수가 아닌 정수로 표시됩니다.

  2. 계산된 숫자가 1보다 작으면 각 NIC에 큐 하나를 대신 할당합니다.

  3. 계산된 숫자가 NIC당 최대 큐 수보다 큰지 확인합니다. NIC당 최대 큐 수는 드라이버 유형에 따라 달라집니다.

    • virtIO 또는 커스텀 드라이버를 사용해서 NIC당 최대 큐 수는 32입니다. 계산된 숫자가 32보다 크면 계산된 수를 무시하고 대신 각 NIC에 32개의 큐를 할당합니다.
    • gvNIC를 사용하는 경우 NIC당 최대 큐 수는 16입니다. 계산된 숫자가 16보다 크면 계산된 수를 무시하고 대신 각 NIC에 16개의 큐를 할당합니다.

다음 예시에서는 기본 큐 수를 계산하는 방법을 보여줍니다.

  • VM이 VirtIO를 사용하고 vCPU 16개와 NIC 4개가 있으면 계산된 숫자는 [16/4] = 4입니다. Google Cloud는 각 NIC에 4개의 큐를 할당합니다.

  • VM이 GVNIC를 사용하고 vCPU 128개와 2개의 NIC가 있으면 경우 계산된 숫자는 [128/2/2] = 32입니다. Google Cloud는 각 NIC에 가능한 NIC당 최대 큐 수를 할당합니다. Google Cloud는 NIC당 16 큐를 할당합니다.

Linux 시스템에서는 ethtool을 사용하여 Google Cloud가 NIC당 할당하는 큐 수보다 적은 큐로 NIC를 구성할 수 있습니다.

커스텀 큐 할당

기본 큐 할당 대신, Compute Engine API를 사용하여 새 VM을 만들 때 각 NIC에 커스텀 큐 수(RX 및 TX 모두 합계)를 각 NIC에 할당할 수 있습니다.

지정하는 커스텀 큐 수는 다음 규칙을 준수해야 합니다.

  • NIC당 할당할 수 있는 최소 큐 수는 1개입니다.

  • 할당할 수 있는 최대 큐 수는 드라이버 유형에 따라 vCPU 수 또는 NIC당 최대 큐 수 중 더 작은 값입니다.

    • virtIO 또는 커스텀 드라이버를 사용할 때 최대 큐 수는 32입니다.
    • gvNIC를 사용할 때 최대 큐 수는 16입니다.
  • 커스텀 큐 수를 VM의 모든 NIC에 할당하는 경우 할당한 큐 수의 합계가 VM 인스턴스에 할당된 vCPU 수보다 적거나 같아야 합니다.

예를 들면 다음과 같습니다.

  • VM에 vCPU 8개와 NIC 3개가 있으면 VM의 최대 큐 수는 vCPU의 개수 또는 8개입니다. nic0에 큐 1개, nic1에 큐 4개, nic2에 큐 3개를 할당할 수 있습니다. 이 예시에서는 이후에 4개의 큐를 nic2에 할당할 수 없습니다. 하지만 할당된 큐의 합계가 vCPU 수(8개)를 초과할 수 없으므로 다른 두 NIC 큐 할당은 유지됩니다.

  • VM에 vCPU가 96개 있고 NIC가 2개 있으면 virtIO 드라이버를 사용할 경우 두 NIC에 각각 최대 32개 큐를 할당하거나 gvNIC 드라이버를 사용할 경우 각각 최대 16개 큐를 할당할 수 있습니다. 이 예시에서 할당된 큐의 합계는 항상 vCPU 수보다 작습니다.

또한 일부 NIC에 대해서만 커스텀 큐 수를 할당하여 Google Cloud가 나머지 NIC에 큐를 할당하도록 할 수도 있습니다. NIC당 할당 가능한 큐 수에는 여전히 위 규칙이 적용됩니다. 구성의 실행 가능성을 모델링하고, 구성이 가능한 경우 Google Cloud가 다음 프로세스를 사용하여 나머지 NIC에 할당하는 큐 수를 모델링할 수 있습니다.

  1. 커스텀 큐 할당을 사용하여 NIC에 대해 큐 합계를 계산합니다. vCPU가 20개 있고 NIC가 6개 있는 예시 VM의 경우 nic0에 5개 큐를 할당하고, nic1에 6개 큐를 할당하고, nic2에 4개 큐를 할당한다고 가정하고, Google Cloud가 nic3, nic4, nic5에 대해 큐를 할당하도록 설정합니다. 이 예시에서 커스텀 할당 큐의 합계는 5+6+4 = 15입니다.

  2. vCPU 수에서 커스텀 할당 큐의 합계를 .뺍니다. 뺀 값이 Google Cloud가 큐를 할당해야 하는 나머지 NIC의 수와 같거나 적지 않으면 Google Cloud가 오류를 반환합니다. vCPU 20개와 커스텀 할당 큐의 합계가 15인 예시 VM으로 계속 진행하면 Google Cloud에는 남은 NIC(nic3, nic4, nic5)에 할당할 큐가 20-15 = 5개 남습니다.

  3. 이전 단계의 차이를 남은 NIC 수로 나누고, 나머지에 해당하는 —⌊(number of vCPUs - sum of assigned queues)/(number of remaining NICs)⌋를 버립니다. 이 계산은 항상 이전 단계에서 설명한 제약조건으로 인해 최소한 1 이상에 해당하는 정수(분수가 아님) 결과가 발생합니다. Google Cloud는 계산된 숫자가 NIC당 최대 큐 수보다 크지 않은 한 남은 각 NIC에 계산된 숫자와 일치하는 큐 수를 할당합니다. NIC당 최대 큐 수는 드라이버 유형에 따라 달라집니다.

    • virtIO 또는 커스텀 드라이버를 사용하여 각 나머지 NIC의 계산된 큐 수가 32보다 크면 Google Cloud는 각각의 나머지 NIC에 32 큐를 할당합니다.
    • gvNIC를 사용하는 경우 남은 각 NIC에 대해 계산된 큐 수가 16보다 크면 Google Cloud는 남은 각 NIC에 16개의 큐를 할당합니다.

API

instances.insert 메서드를 사용하여 NIC에 특정 큐 수가 할당된 VM을 만듭니다.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances
{
  "name": "VM_NAME",
  "machineType": "machineTypes/MACHINE_TYPE"
  "networkInterfaces": [
      {
        "network": string,
        "subnetwork": string,
        "networkIP": string,
        "name": string,
        "queueCount": "QUEUE_SIZE",
        ....
      ],
      } ],
 }
 

다음을 바꿉니다.

  • PROJECT_ID: VM을 만들 프로젝트의 ID입니다.
  • ZONE: VM을 만들 영역
  • MACHINE_TYPE: 새 VM의 머신 유형(사전 정의 또는 커스텀)입니다.
  • VM_NAME: 새 VM의 이름입니다.
  • QUEUE_SIZE: 이 섹션에서 설명하는 규칙이 적용되는 NIC의 큐 수입니다.

큐 할당 및 머신 유형 변경

VM 인스턴스를 중지하고 머신 유형을 변경할 때 새 머신 유형의 vCPU 수가 다른 경우 Google Cloud는 NIC당 큐 할당을 변경하지 않습니다. 기본 또는 커스텀 NIC 큐 할당은 VM을 만들 때에만 설정할 수 있습니다.

다음 단계