블록 스토리지 성능

인스턴스에서 실행되는 앱의 스토리지 옵션을 구성하려면 다음 절차를 따르세요.

워크로드 이해하기

작은(4KB~16KB) 임의 I/O가 주로 필요한 워크로드의 제한 요인은 임의 초당 입출력 작업(IOPS)입니다.

순차 또는 큰(256KB~1MB) 임의 I/O가 주로 필요한 워크로드의 제한 요인은 처리량입니다.

스토리지 옵션 선택

인스턴스에 사용할 여러 유형의 블록 스토리지를 제공할 수 있습니다. 유형에 따라 가격, 성능, 내구성 특성이 달라집니다. 전체 비교는 스토리지 옵션을 참조하세요.

  • 표준 영구 디스크는 순차 I/O를 주로 사용하는 큰 데이터 처리 워크로드에 적합합니다.
  • SSD 영구 디스크는 표준 영구 디스크보다 짧은 지연 시간과 더 많은 IOPS가 필요한 엔터프라이즈 애플리케이션 및 고성능 데이터베이스에 적합합니다. SSD 영구 디스크는 한 자릿수의 밀리초 지연 시간을 위해 설계되었습니다. 관찰된 지연 시간은 앱에 따라 다릅니다.
  • 로컬 SSD는 지연 시간이 짧지만 중복성이 없으며, 특정 인스턴스의 수명 동안만 존재합니다.
영역
표준
영구 디스크
리전
표준
영구 디스크
영역
SSD
영구 디스크
리전
SSD
영구 디스크
로컬 SSD(SCSI) 로컬 SSD(NVMe)
최대 지속 IOPS
GB당 읽기 IOPS 0.75 0.75 30 30 266.7 453.3
GB당 쓰기 IOPS 1.5 1.5 30 30 186.7 240
인스턴스당 읽기 IOPS 7,500* 3,000* 15,000~100,000* 15,000~100,000* 400,000 680,000
인스턴스당 쓰기 IOPS 15,000* 15,000* 15,000~30,000* 15,000~30,000* 280,000 360,000
최대 지속 처리량(MB/s)
GB당 읽기 처리량 0.12 0.12 0.48 0.48 1.04 1.77
GB당 쓰기 처리량 0.12 0.12 0.48 0.48 0.73 0.94
인스턴스당 읽기 처리량 240~1,200* 240* 240~1,200* 240~1,200* 1,560 2,650
인스턴스당 쓰기 처리량 76~400** 38~200** 76~800* 38~400* 1,090 1,400
* 영구 디스크의 IOPS 및 처리량 성능은 여러 요인 중에서도 디스크 크기, 인스턴스 vCPU 수, I/O 블록 크기에 따라 달라집니다.
** 영구 디스크의 처리량 성능은 인스턴스에 vCPU 수가 많을수록 향상됩니다. 쓰기 처리량의 네트워크 이그레스 상한을 참조하세요.

여러 가상 머신에 디스크를 연결해도 집계 성능이나 비용에는 영향을 미치지 않습니다. 각 머신은 디스크당 성능 한도 중 일정 비율을 차지합니다.

최대 성능 한도에 근접한 SSD 읽기 대역폭과 IOPS 일관성은 대체로 네트워크 인그레스 사용률에 따라 달라집니다. 특히 16KB의 I/O 크기로 최대 IOPS 한도에 근접해 작동할 때는 성능 한도의 일부 변동을 예상해야 합니다.

영구 디스크의 IOPS당 가격 계산

영구 디스크는 I/O당 비용이 없기 때문에 디스크 지출 예산을 계산하기 위해 월간 I/O를 추정할 필요가 없습니다. 하지만 IOPS 중심 워크로드의 경우, 비교를 위해 월간 비용을 IOPS당 가격으로 나눌 수 있습니다.

다음 가격 계산 예시에서는 미국 내 영구 디스크 가격 책정 모델이 사용됩니다. SSD 영구 디스크와 비교한 표준 영구 디스크의 상대적 비용을 고려하세요. 예를 들어 us-central1 영역에서는 표준 영구 디스크의 가격이 GB당 $0.040이고 SSD 영구 디스크의 가격은 GB당 $0.170입니다. 볼륨 크기를 늘리면 추가 비용 없이 성능 한도도 자동으로 증가합니다.

영구 디스크의 IOPS당 비용을 확인하려면 GB당 가격을 GB당 IOPS 수로 나눕니다. 다음 표에서는 GB당 임의 읽기 IOPS의 가격을 계산합니다. 동일한 계산을 사용하여 쓰기 IOPS당 가격도 계산할 수 있습니다.

디스크 유형 가격(1GB당 월별 과금) GB당 읽기 IOPS GB당 IOPS의 가격
표준 영구 디스크 $0.040 0.75 $0.040 / 0.75 = $0.0533
SSD 영구 디스크 $0.170 30 $0.170 / 30 = $0.0057

표준 영구 디스크는 경제적인 용량을 제공하며 SSD 영구 디스크는 IOPS 중심 워크로드에 적합한 가격 대비 성능을 제공합니다. 영구 디스크 가격 책정로컬 SSD 가격 책정에 대해 자세히 알아보세요.

디스크 및 인스턴스 구성

성능을 최대화하려면 올바른 디스크 크기, vCPU 개수, 머신 유형을 구성하세요.

디스크 크기 및 vCPU 수

표준 영구 디스크의 성능은 크기에 따라 확장됩니다. 쓰기 처리량의 네트워크 이그레스 한도 때문에 VM 인스턴스에 할당된 vCPU 수에 따라서도 성능이 달라집니다. 16개 이상의 vCPU 사용 시 성능이 제한되지 않습니다. 16개 미만의 vCPU 사용 시 성능이 제한됩니다. 자세한 내용은 네트워크 이그레스 한도를 참조하세요.

SSD 영구 디스크의 성능은 디스크의 한도 또는 디스크가 연결된 Compute Engine 인스턴스의 한도에 도달할 때까지 선형적으로 확장됩니다. 예를 들어 볼륨 크기가 1,000GB인 SSD 영구 디스크를 가정해 보겠습니다. 읽기 한도는 30,000 IOPS입니다. 하지만 vCPU가 4개뿐인 인스턴스를 사용하는 경우 읽기 한도는 15,000 IOPS입니다.

다음 표는 디스크 크기 증가에 따라 성능이 크게 변함을 보여줍니다. 다만 1GB 단위로 증가하도록 디스크 크기를 지정할 수 있습니다.

표준 영구 디스크

볼륨 크기(GB) 지속 임의 IOPS 지속 처리량(MB/s)
읽기
(I/O당 16KB 이하)
쓰기
(I/O당 8KB 이하)
쓰기
(I/O당 16KB)
읽기 쓰기
10 * * * * *
32 24 48 48 3 3
64 48 96 96 7 7
128 96 192 192 15 15
256 192 384 384 30 30
512 384 768 768 61 61
1,000 750 1,500 1,500 120 120
1,500 1,125 2,250 2,250 180 180
2,048 1,536 3,072 3,072 245 245
4,000 3,000 6,000 6,000 480 400
5,000 3,750 7,500 7,500 600 400
8,192 6,144 12,288 7,500 983 400
10,000~
65,536
7,500 15,000 7,500 1,200 400

* 이 볼륨 크기는 부팅 볼륨에만 사용합니다. I/O 버스트는 여기에 설명된 선형 확장보다 더 높은 성능을 부팅 볼륨에 제공합니다.

SSD 영구 디스크

지속 임의 IOPS 지속 처리량(MB/s)
볼륨 크기(GB) 읽기
(I/O당 8KB 이하)
읽기
(I/O당 16KB 이하)
쓰기
(I/O당 8KB 이하)
쓰기
(I/O당 16KB)
읽기 쓰기
10 300 300 300 300 4.8 4.8
32 960 960 960 960 15 15
64 1,920 1,920 1,920 1,920 30 30
128 3,840 3,840 3,840 3,840 61 61
256 7,680 7,680 7,680 7,680 122 122
500 15,000 15,000 15,000 15,000 240 240
834 25,000 25,000 25,000 25,000 400 400
1,000 30,000 30,000 30,000 25,000 480 480
1,334 40,000 40,000 30,000 25,000 640 640
1,667 50,000 50,000 30,000 25,000 800 800
2,048 60,000 60,000 30,000 25,000 983 800
4,000~65,536 100,000 75,000 30,000 25,000 1,200 800
인스턴스 vCPU 수 읽기
(I/O당 8KB 이하)
읽기
(I/O당 16KB 이하)
쓰기
(I/O당 8KB 이하)
쓰기
(I/O당 16KB)
읽기 쓰기
vCPU 1개 15,000 15,000 9,000 4,500 240 72
vCPU 2~3개 15,000 15,000 15,000 4,500/vCPU 240 72/vCPU
vCPU 4~7개 15,000 15,000 15,000 15,000 240 240
vCPU 8~15개 15,000 15,000 15,000 15,000 800 400
vCPU 16~31개 25,000 25,000 25,000 25,000 1,200 800
vCPU 32~63개 60,000 60,000 30,000 25,000 1,200 800
vCPU 64개 이상* 100,000 75,000 30,000 25,000 1,200 800

* CPU 사용률이 100%이면 최대 성능을 얻지 못할 수 있습니다. 최대 한도에 근접한 SSD 읽기 대역폭 및 IOPS 일관성은 대체로 네트워크 인그레스 사용률에 따라 달라집니다. 특히 최대 IOPS 한도에 근접한 16KB I/O의 경우 일부 변동이 발생할 수 있습니다.

머신 유형

Compute Engine에서 머신 유형은 다양한 워크로드에 따라 그룹화되고 선별됩니다.

특히 컴퓨팅 최적화 머신 유형에는 다른 머신 유형의 한도와는 다른 vCPU당 특정 영구 디스크 한도가 적용됩니다. 볼륨별 성능은 디스크 크기별 성능 섹션에 설명된 것과 동일하게 유지됩니다.

성능에 영향을 미치는 요인 고려

쓰기 처리량의 네트워크 이그레스 상한

가상 머신(VM) 인스턴스에는 VM 머신 유형에 따라 달라지는 네트워크 이그레스 상한이 있습니다.

Compute Engine은 여러 병렬 쓰기로 영구 디스크에 데이터를 저장하여 내장 중복성을 보장합니다. 또한 각 쓰기 요청에는 추가 쓰기 대역폭을 사용하는 일정한 오버헤드가 있습니다.

VM 인스턴스에서 발생할 수 있는 최대 쓰기 트래픽은 네트워크 이그레스 상한을 이 중복성과 오버헤드가 사용하는 쓰기 대역폭을 차지하는 대역폭 배수로 나눈 값입니다.

영구 디스크가 네트워크 이그레스 대역폭을 놓고 IP 트래픽과 경합하는 경우에는 최대 쓰기 대역폭의 60%가 영구 디스크 트래픽으로 가고 나머지 40%는 IP 트래픽을 위해 남겨집니다. VM 인스턴스에서 발생할 수 있는 최대 영구 디스크 쓰기 트래픽을 계산하는 방법의 예시를 보려면 아래를 클릭하세요.

동시 읽기 및 쓰기

표준 영구 디스크의 경우 동시 읽기 및 쓰기는 동일한 리소스를 공유합니다. 인스턴스에 사용되는 읽기 처리량 또는 IOPS가 많을 때는 수행 가능한 쓰기 작업 수가 줄어듭니다. 반대로 쓰기 처리량이나 IOPS를 더 많이 사용하는 인스턴스는 수행할 수 있는 읽기 작업 수가 줄어듭니다.

SSD 영구 디스크는 동시 읽기 및 쓰기에 대해 최대 처리량 한도를 얻을 수 있습니다. 그러나 SSD 영구 디스크는 읽기 및 쓰기의 최대 IOPS 한도에 동시에 도달할 수 없습니다.

처리량 = IOPS * I/O 크기입니다. SSD 영구 디스크에서 동시 읽기 및 쓰기 최대 처리량 한도를 활용하려면 읽기 IOPS와 쓰기 IOPS를 합한 값이 IOPS 한도를 초과하지 않도록 I/O 크기를 사용하세요.

논리 볼륨 크기

영구 디스크는 크기를 최대 64TB까지 설정할 수 있으며, VM 내부에서 논리 볼륨 관리를 사용하여 최대 257TB의 단일 논리 볼륨을 만들 수 있습니다. 더 큰 볼륨 크기는 다음과 같은 방법으로 성능에 영향을 줍니다.

  • 일부 로컬 파일 시스템은 이 규모에서 제대로 작동하지 않습니다. 마운트 및 파일 시스템 검사와 같은 일반적인 작업이 예상보다 오래 걸릴 수 있습니다.

  • 영구 디스크의 최대 성능은 더 작은 크기에서 달성됩니다. 디스크가 이 정도의 저장용량을 한 VM에서 완전히 읽거나 쓰려면 시간이 더 오래 걸립니다. 애플리케이션에서 지원하는 경우 여러 VM을 사용하여 총 시스템 처리량을 높이는 것이 좋습니다.

  • 대량의 영구 디스크 스냅샷 생성은 완료하는 데 예상보다 오랜 시간이 걸릴 수 있으며, 애플리케이션과 신중하게 조율하지 않으면 논리 볼륨이 일관성 없게 표시될 수 있습니다.

단일 VM 인스턴스의 여러 디스크

동일한 유형(표준 또는 SSD)의 여러 디스크가 동일한 모드(예: 읽기/쓰기)로 연결되어 있다고 생각해 보세요. 디스크 하나만 사용하는 경우, 단일 디스크로 합친 디스크 크기에 해당하는 성능 한도에 도달할 수 있습니다. 모든 디스크를 100% 사용한다면 상대적 디스크 크기에 관계없이 집계 성능 한도가 디스크 간에 균등하게 분할됩니다.

예를 들어 200GB의 표준 디스크와 1,000GB의 표준 디스크가 있다고 가정해 보세요. 1,000GB 디스크를 사용하지 않으면 200GB 디스크가 1,200GB 표준 디스크의 성능 한도에 도달할 수 있습니다. 두 디스크를 모두 100% 사용하면 각 디스크는 600GB 표준 영구 디스크의 성능 한도를 갖게 됩니다(1,200GB / 2개 디스크 = 600GB 디스크).

이를 입증하려면 다음 인스턴스를 생각해 보세요. instance-a에는 200GB의 표준 영구 디스크 1개와 1,000GB의 표준 영구 디스크 1개가 있습니다. instance-b에는 200GB의 표준 영구 디스크가 1개 있습니다. 그 외에는 두 인스턴스의 구성이 동일합니다.

다중 디스크 인스턴스. 단일 디스크 인스턴스.

다음 명령어는 instance-a의 200GB 디스크와 instance-b의 200GB 디스크의 읽기 IOPS를 따로 테스트합니다.

다중 디스크 인스턴스 rIOPS. 단일 디스크 인스턴스 rIOPS.

instance-a의 200GB 디스크에서 관찰된 읽기 IOPS는 902로서, 합친 디스크 크기(200GB + 1,000GB = 1,200GB)의 예상 읽기 IOPS 수준과 일치합니다.

성능 최적화

성능을 최대화하려면 다음 사항을 고려하세요.

병목 현상의 원인이 VM의 디스크 크기 또는 머신 유형이 아님을 확인한 후에도 앱과 운영체제의 조정이 필요할 수 있습니다. 영구 디스크 성능 벤치마킹 및 조정에 대한 자세한 내용은 영구 디스크 성능 최적화로컬 SSD 성능 최적화를 참조하세요.