블록 스토리지 성능

인스턴스에서 실행되는 앱을 위한 스토리지 옵션을 구성할 때는 다음 프로세스를 사용합니다.

  1. 워크로드 이해: 필요한 공간 및 앱에 필요한 성능 특성을 결정합니다.
  2. 올바른 디스크 유형 결정: 디스크 유형간 성능을 비교합니다.
  3. 최적의 스토리지 성능을 위해 인스턴스 및 디스크 크기를 구성합니다. 스토리지 성능에 영향을 주는 요소들을 참조하세요.

워크로드

특정 앱에 대한 성능 요구사항은 일반적으로 두 가지 고유한 I/O 패턴으로 나뉩니다.

  • 작은 데이터 읽기 및 쓰기(1MB 미만)
  • 큰 데이터 읽기 및 쓰기

작은 데이터 읽기 및 쓰기의 제한 요인은 임의의 IOPS(초당 입/출력 작업 수)입니다. 작은 데이터에 대한 여러 동시 I/O가 포함된 워크로드는 IOPS 중심 워크로드입니다.

큰 데이터 읽기 및 쓰기의 제한 요인은 처리량입니다. 큰 데이터에 대한 무작위 I/O 또는 대부분 순차적인 I/O가 포함된 워크로드는 처리량 중심 워크로드입니다.

블록 스토리지 성능 비교

인스턴스에 사용할 여러 유형의 블록 스토리지를 제공할 수 있습니다. 유형에 따라 가격, 성능, 내구성 특성이 달라집니다.

  • 표준 영구 디스크는 큰 데이터 처리 워크로드에 적합한 저비용 옵션입니다.
  • SSD 영구 디스크는 엔터프라이즈 애플리케이션 및 고성능 데이터베이스 요구에 적합한 고성능 옵션입니다.
  • 로컬 SSD는 성능이 뛰어나고 지연 시간이 낮지만, 중복성이 없으며 특정 인스턴스의 수명 동안만 존재합니다.

GB당 IOPS 및 처리량 수치는 단일 인스턴스에 연결되어 있거나 여러 인스턴스에서 공유하고 있는지에 관계없이 단일 디스크의 데이터에 대한 총 집계 성능을 나타냅니다. 동일한 디스크에서 읽는 여러 인스턴스의 경우 디스크의 집계 처리량과 IOPS 용량은 인스턴스 간에 공유됩니다. 계획을 위해 다음의 GB당 IOPS 및 처리량 속도를 사용하는 것이 좋습니다.

영역
표준영구 디스크
리전
표준영구 디스크
영역
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 개수 및 볼륨 크기를 참조하세요.

영구 디스크와 물리적 하드 드라이브 비교

영구 디스크 크기를 지정할 때는 이러한 디스크가 기존의 물리적 하드 드라이브와 어떻게 다른지 고려해야 합니다. 다음 표에서는 일반적으로 75 IOPS 또는 120MB/s를 지원하는 7,200 RPM SATA 드라이브에서 예상할 수 있는 일반적인 성능에 따라 표준 영구 디스크 및 SSD 영구 디스크를 비교해서 보여줍니다.

I/O 유형 I/O 패턴 7,200 RPM SATA 드라이브에 상응하는 필요 크기
표준 영구 디스크 SSD 영구 디스크
작은 데이터 임의 읽기 75 작은 데이터 임의 읽기 100GB 3GB
작은 데이터 임의 쓰기 75 작은 데이터 임의 쓰기 50GB 3GB
스트리밍 큰 데이터 읽기 120MB/s 스트리밍 읽기 1,000GB 250GB
스트리밍 큰 데이터 쓰기 120MB/s 스트리밍 쓰기 1,000GB 250GB

가격 대 성능

앱에 맞는 볼륨 유형 및 크기를 선택할 때는 몇 가지 입력 조건을 고려해야 하지만, 볼륨 사용 가격은 고려할 필요가 없는 요인입니다. 영구 디스크는 I/O당 비용이 없기 때문에 디스크 지출 예산을 계산하기 위해 월간 I/O를 추정할 필요가 없습니다. 하지만 IOPS 중심 워크로드의 경우, 비교를 위해 월간 비용을 IOPS당 가격으로 나눌 수 있습니다.

다음 가격 계산 예시에서는 미국 내 영구 디스크 가격이 사용됩니다. 이 예시에서는 SSD 영구 디스크와 비교되는 표준 영구 디스크의 상대적 비용을 고려합니다. 표준 영구 디스크는 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

성능 한도에 영향을 미치는 요인

인스턴스 vCPU 개수 및 볼륨 크기

표준 영구 디스크

표준 영구 디스크 IOPS와 처리량 성능은 다음과 같은 인스턴스별 한도에 도달할 때까지 디스크 크기에 따라 선형적으로 증가합니다.

  • 읽기 처리량: 10TB 디스크 크기에서 최대 1,200MB/s
  • 쓰기 처리량: 3.4TB 디스크 크기에서 최대 400MB/s
  • 읽기 IOPS: 10TB 디스크 크기에서 최대 7,500 IOPS
  • 쓰기 IOPS: 10TB 디스크 크기에서 최대 15,000 IOPS

인스턴스에서 16개 이상의 vCPU 개수는 표준 영구 디스크의 성능을 제한하지 않습니다.

인스턴스의 vCPU 수가 8개 미만인 경우 네트워크 이그레스 한도가 vCPU 수에 비례하기 때문에 처리량의 쓰기 제한이 낮아집니다. 이 관찰된 쓰기 처리량은 I/O의 크기에 따라서도 달라집니다(16KB I/O는 동일한 IOPS 수준에서 8KB I/O에 비해 더 많은 처리량을 소비함).

기존 인스턴스에서 영구 디스크 성능 이점을 얻기 위해서는 영구 디스크 크기를 조정하여 영구 디스크당 IOPS 및 처리량을 늘려야 합니다.

볼륨 크기(GB) 지속 임의 IOPS 지속 처리량(MB/s)
읽기
(<=16KB/IO)
쓰기
(<=8KB/IO)
쓰기
(16KB/IO)
읽기 쓰기
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** 7,500 15,000 7,500 1,200 400
65,536 7,500 15,000 7,500 1,200 400

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

** 한도에 가까운 처리량은 CPU 사용량 및 리소스 가용성에 따라 달라지므로 성능 변동이 예상됩니다.

SSD 영구 디스크

SSD 영구 디스크의 IOPS 성능은 디스크 크기 외에 인스턴스의 vCPU 수에 따라 달라집니다. 성능은 볼륨 한도 또는 각 Compute Engine 인스턴스의 한도에 도달할 때까지 선형적으로 확장됩니다.

예를 들어 볼륨 크기가 1,000GB인 SSD 영구 디스크를 가정해 보겠습니다. 아래 표에 따르면 읽기 한도는 30,000 IOPS입니다. 하지만 vCPU가 4개뿐인 인스턴스를 사용하는 경우 읽기 한도는 15,000 IOPS입니다.

코어 VM 수가 적어지면 쓰기 처리량에 적용되는 네트워크 이그레스 한도에 따라 쓰기 IOPS 및 처리량 제한이 줄어듭니다. 자세한 내용은 쓰기 처리량의 네트워크 이그레스 상한을 참조하세요. 최대 한도에 근접한 SSD 읽기 대역폭 및 IOPS 일관성은 주로 네트워크 인그레스 사용률에 따라 달라집니다. 특히 최대 IOPS 한도에 근접한 16KB I/O의 경우 일부 변동이 발생할 수 있습니다.

SSD 영구 디스크는 한 자릿수의 밀리초 지연 시간으로 설계되었습니다. 지연 시간은 앱을 기준으로 관측됩니다.

기존 인스턴스에서 SSD 영구 디스크의 성능을 향상하려면 인스턴스의 머신 유형을 변경하여 VM당 한도를 늘리고 영구 디스크의 크기를 조절하여 영구 디스크당 IOPS와 처리량을 늘립니다.

지속 임의 IOPS 지속 처리량(MB/s)
볼륨 크기(GB) 읽기
(<=8KB/IO)
읽기
(<=16KB/IO)
쓰기
(<=8KB/IO)
쓰기
(16KB/IO)
읽기 쓰기
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,096 100,000 75,000 30,000 25,000 1,200 800
8,192 100,000 75,000 30,000 25,000 1,200 800
16,384 100,000 75,000 30,000 25,000 1,200 800
32,768 100,000 75,000 30,000 25,000 1,200 800
65,536 100,000 75,000 30,000 25,000 1,200 800
인스턴스 vCPU 수 읽기
(<=8KB/IO)
읽기
(<=16KB/IO)
쓰기
(<=8KB/IO)
쓰기
(16KB/IO)
읽기* 쓰기
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

* I/O 블록 크기 256KB 이상을 기준으로 한 최대 처리량

** CPU 사용률이 100%이면 최대 성능을 얻지 못할 수 있음

머신 유형

컴퓨팅 최적화 머신 유형에는 다른 머신 유형에 대한 한도와는 다른 vCPU당 특정 영구 디스크 한도가 적용됩니다. 다음 표에서는 이러한 한도를 보여줍니다.

볼륨 크기별 성능은 표준 디스크 성능SSD 디스크 성능 섹션에 설명된 것과 동일하게 유지됩니다.

C2 표준 영구 디스크

인스턴스 vCPU 수 지속 임의 IOPS 지속 처리량(MB/s)
읽기
(<=16KB/IO)
쓰기
(<=8KB/IO)
쓰기
(16KB/IO)
읽기* 쓰기
vCPU 4개 3,000 4,000 4,000 240 240
vCPU 8개 3,000 4,000 4,000 240 240
vCPU 16개3,000 4,000 4,000 240 240
vCPU 30개 3,000 8,000 8,000 240 240
vCPU 60개 3,000 15,000 15,000 240 240

C2 SSD 영구 디스크

인스턴스 vCPU 수 지속 임의 IOPS 지속 처리량(MB/s)
읽기
(<=16KB/IO)
쓰기
(<=8KB/IO)
쓰기
(16KB/IO)
읽기* 쓰기
vCPU 4개 4,000 4,000 4,000 240 240
vCPU 8개 4,000 4,000 4,000 240 240
vCPU 16개8,000 4,000 4,000 320 240
vCPU 30개 15,000 8,000 8,000 600 240
vCPU 60개 30,000 15,000 15,000 1,200 400

동시 읽기 및 쓰기

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

SSD 영구 디스크는 동시 읽기 및 쓰기에 대해 최대 처리량 한도를 얻을 수 있습니다. 하지만 IOPS의 경우는 그렇지 않습니다. 즉, SSD 영구 디스크는 최대 읽기 및 쓰기 한도에 동시에 도달할 수 없습니다. 동시 읽기 및 쓰기에 대한 최대 처리량 한도를 달성하기 위해서는 볼륨이 IOPS 병목 지점에 도달하지 않고 처리량 한도에 도달할 수 있도록 I/O 크기를 최적화해야 합니다.

동시 읽기 및 쓰기에 대한 인스턴스 IOPS 한도:

다음 표의 IOPS 숫자는 8KB I/O 크기를 기준으로 합니다. 16KB와 같은 다른 I/O 크기의 경우 IOPS 수치가 다를 수 있지만 읽기/쓰기 분배는 동일합니다.

표준 영구 디스크 SSD 영구 디스크(8 vCPU) SSD 영구 디스크(32개 이상 vCPU)
읽기 쓰기 읽기 쓰기 읽기 쓰기
7,500 IOPS 0 IOPS 15,000 IOPS 0 IOPS 60,000 IOPS 0 IOPS
5,625 IOPS 3,750 IOPS 11,250 IOPS 3,750 IOPS 45,000 IOPS 7,500 IOPS
3,750 IOPS 7,500 IOPS 7,500 IOPS 7,500 IOPS 30,000 IOPS 15,000 IOPS
1875 IOPS 11,250 IOPS 3,750 IOPS 11,250 IOPS 15,000 IOPS 22,500 IOPS
0 IOPS 15,000 IOPS 0 IOPS 15,000 IOPS 0 IOPS 30,000 IOPS

동시 읽기 및 쓰기에 대한 인스턴스 처리량 한도:

표준 영구 디스크 SSD 영구 디스크(vCPU 8개) SSD 영구 디스크(16개 이상 vCPU)
읽기 쓰기 읽기 쓰기 읽기 쓰기
1200MB/s 0MB/s 800MB/s* 400MB/s* 1,200MB/s* 800MB/s*
900MB/s 100MB/s
600MB/s 200MB/s
300MB/s 300MB/s
0MB/s 400MB/s

* SSD 영구 디스크의 경우 최대 읽기 처리량과 최대 쓰기 처리량은 서로 독립적이므로 이러한 제한은 일정합니다.

향상된 논리 볼륨 성능

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

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

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

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

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

각 영구 디스크 쓰기 작업은 가상 머신(VM) 인스턴스의 누적 네트워크 이그레스 상한에 영향을 줍니다.

VM 인스턴스가 지원할 수 있는 최대 영구 디스크 쓰기 트래픽을 계산하기 위해서는 해당 2Gbit/s/vCPU 네트워크 상한에서 인스턴스의 다른 네트워크 이그레스 트래픽을 차감합니다. 남은 처리량은 영구 디스크 쓰기 트래픽에 사용할 수 있는 처리량을 나타냅니다.

Compute Engine은 영구 디스크에 데이터를 저장하므로 데이터가 내장 중복성을 갖습니다. 인스턴스는 이러한 중복성을 얻기 위해 영구 디스크에 데이터를 병렬로 3회 기록합니다. 또한 각 쓰기 요청에는 이그레스 대역폭 사용에 따른 일정 오버헤드가 존재합니다.

각 인스턴스에는 VM의 네트워크 이그레스 상한에 따라 영구 디스크 쓰기 한도가 적용됩니다. 영구 디스크가 네트워크 이그레스를 위해 IP 트래픽과 경합하는 경우에는 네트워크 이그레스 상한의 60%가 영구 디스크 트래픽으로 전달되고 나머지 40%는 IP 트래픽을 위해 남게 됩니다. 다음 표에는 IP 트래픽의 추가 여부에 관계없이 예상되는 영구 디스크 쓰기 대역폭이 나와 있습니다.

표준 영구 디스크 솔리드 스테이트 영구 디스크
vCPU 수 표준 영구 디스크 쓰기 한도(MB/s) 표준 영구 디스크 쓰기 할당(MB/s) 한도 도달에 필요한 표준 볼륨 크기(GB) SSD 영구 디스크 쓰기 한도(MB/s) SSD 영구 디스크 쓰기 할당(MB/s) 한도 도달에 필요한 SSD 영구 디스크 크기(GB)
1 72 43 600 72 43 150
2 144 86 1,200 144 86 300
4 240 173 2,000 240 173 500
8개 이상 400 346 3,334 400 346 834

이 표의 값이 계산된 원리를 이해하기 위해 vCPU가 1개이고 표준 영구 디스크가 사용된 간단한 예시를 사용해 보겠습니다. 이 예시에서는 모든 쓰기 요청의 대역폭 배수가 3.3이라고 가정합니다. 즉, 데이터가 3회 기록되고 총 10%의 오버헤드를 갖습니다. 이그레스 상한을 계산하기 위해서는 네트워크 이그레스 상한인 2Gbit/s(238MB/s와 동일)를 3.3으로 나눕니다.

vCPU 1개의 최대 쓰기 대역폭 = 238 / 3.3 = 표준 영구 디스크에 대해 최대 72MB/s

위의 성능 차트에 제공된 표준 영구 디스크 GB당 쓰기 처리량 수치를 사용하면 이러한 성능을 얻기 위해 필요한 디스크 용량도 계산할 수 있습니다.

vCPU 1개의 최대 쓰기 대역폭을 얻기 위해 필요한 디스크 용량 = 72 / 0.12 = 최대 600GB

영역 영구 디스크와 마찬가지로 리전 영구 디스크의 쓰기 트래픽은 VM 인스턴스의 누적 네트워크 이그레스 상한에 영향을 줍니다. 리전 영구 디스크에서 사용 가능한 네트워크 이그레스를 계산하려면 6.6을 계수로 사용합니다.

vCPU 1개의 최대 쓰기 대역폭 = 238 / 6.6 = 표준 복제된 영구 디스크에 대해 최대 36MB/s

코어 VM이 16개 이상인 경우, 영구 디스크 쓰기에서 소비되는 최대 네트워크 이그레스 대역폭은 400MB/s 이상인 쓰기 처리량이 800MB/s까지 증가할 동안 변경되지 않고 1,320MB/s(400MB/s * 3.3)으로 유지됩니다.

다음 단계