IT 이야기/GCP

GCP Instance Type vCPU와 DIsk IOPS의 관계

클톡(CloudTalk) 2022. 7. 26. 00:17

대부분의 서비스는 Instance로 구성되고 사용자가 직접 관리하는 Instance 중심의 서비스가 Serverless 서비스 보다 많아, Instance 선택시에 고려해야 하는 상황들을 설명합니다.

Instance Type 선정 & Disk Type 용량에 따른 IOPS 요구 사항 선정시 고려 사항

테스트 환경 구성

$sudo mkfs.ext4 -m 0 -E lazy_itable_init=0,lazy_journal_init=0,discard /dev/sdb
$sudo mount -o discard,defaults /dev/sdb /disk-1
$sudo apt update
$sudo apt install -y fio
$sudo mkdir fiotest

$sudo fio --name=write_iops --directory=/disk-1/fiotest --size=10G \
--time_based --runtime=60s --ramp_time=2s --ioengine=libaio --direct=1 \
--verify=0 --bs=4K --iodepth=64 --rw=randwrite --group_reporting=1
$sudo fio --name=write_iops --directory=/disk-2/fiotest --size=10G \
--time_based --runtime=60s --ramp_time=2s --ioengine=libaio --direct=1 \
--verify=0 --bs=4K --iodepth=64 --rw=randwrite --group_reporting=1
$sudo fio --name=write_iops --directory=/disk-3/fiotest --size=10G \
--time_based --runtime=60s --ramp_time=2s --ioengine=libaio --direct=1 \
--verify=0 --bs=4K --iodepth=64 --rw=randwrite --group_reporting=1

$sudo fio --name=read_iops --directory=/disk-1/fiotest --size=1G \
--time_based --runtime=60s --ramp_time=2s --ioengine=libaio --direct=1 \
--verify=0 --bs=4K --iodepth=64 --rw=randread --group_reporting=1
$sudo fio --name=read_iops --directory=/disk-2/fiotest --size=1G \
--time_based --runtime=60s --ramp_time=2s --ioengine=libaio --direct=1 \
--verify=0 --bs=4K --iodepth=64 --rw=randread --group_reporting=1
$sudo fio --name=read_iops --directory=/disk-3/fiotest --size=1G \
--time_based --runtime=60s --ramp_time=2s --ioengine=libaio --direct=1 \
--verify=0 --bs=4K --iodepth=64 --rw=randread --group_reporting=1

테스트 결과표

Instance 용량 Type 쓰기 IOPS 쓰기 limit 읽기 IOPS 읽기 limit
c2-std-4 100G Standard disk 278 150 69 75
c2-std-4 100G Balanced disk 2967 600 2999 600
c2-std-4 100G SSD disk 3968 3000 3996 3000
c2-std-4 1000G Standard disk 1496 1500 766 750
c2-std-4 1000G Balanced disk 3967 6000 3993 6000
c2-std-4 1000G SSD disk 3967 30000 3994 30000
n2-std-4 1000G Standard disk 1496 1500 766 750
n2-std-4 1000G Balanced disk 6014 6000 6059 6000
n2-std-4 1000G SSD disk 14910 30000 15000 30000
n2-std-32 1000G Standard disk 1496 1500 764 750
n2-std-32 1000G Balanced disk 6014 6000 6000 6000
n2-std-32 1000G SSD disk 30003 30000 30004 30000

- Disk의 성능은 Disk Type + 용량 + Instance Type + vCPU에 영향을 받는다.

- C2 Type은 Disk에 대한 IOPS 성능을 끌어내기 위한 타입이 아니다.

- N2 Type은 vCPU 개수 기준으로 다른 Instance Type 대비 높은 Disk IOPS를 지원한다.

클톡! 경험톡!

1. N2 Type이 좋다.
2. 파랑색 영역의 경우에는 Disk Type 및 Disk 용량과 관계없이 더 높은 IOPS 성능을 냈지만, GCP를 통해서 확인한 결과 언제든지 Limit을 적용할 수 있는 서비스로 보장은 Limit을 기준으로 제공한다고 한다. 일명 보너스 IOPS다... 언제 없어져도 이상하지 않다.

참조

GCP Disk 옵션 (링크)

머신 유형 및 vCPU 개수별 성능 (링크)

디스크 성능 그래프 작성 (링크)