디스크 유형별 성능 차트는 로컬 SSD 파티션에서 얻을 수 있는 최대 성능을 보여줍니다. 이러한 속도를 얻기 위해 앱 및 VM 인스턴스를 최적화하려면 다음 권장사항을 따르세요.
로컬 SSD에서 게스트 환경 최적화 사용
기본적으로 대부분의 Compute Engine에서 제공되는 Linux 이미지는 최대 로컬 SSD 성능에 맞게 인스턴스를 구성하는 최적화 스크립트를 자동으로 실행합니다. 이 스크립트는 특정 큐 sysfs
설정을 사용하여 머신의 전체 성능을 높이고 특정 가상 CPU(vCPU)에 대한 인터럽트 요청(IRQ)을 마스킹합니다. 이 스크립트는 Compute Engine 로컬 SSD 파티션의 성능만 최적화합니다.
Ubuntu, SLES 및 기타 이전 이미지는 이 성능 최적화를 포함하도록 구성할 수 없습니다. 이러한 이미지 또는 v20141218 이전의 이미지를 사용 중인 경우에는 게스트 환경을 설치하여 해당 최적화를 사용할 수 있습니다.
NVMe 또는 SCSI 인터페이스에 최상의 이미지 선택
로컬 SSD는 NVMe 또는 SCSI 인터페이스를 노출할 수 있으며, 운영체제에 따라 가장 적합한 인터페이스를 선택할 수 있습니다. 부팅 디스크 이미지에 가장 적합한 로컬 SSD 파티션의 인터페이스를 선택하세요. 인스턴스가 SCSI 인터페이스를 사용하여 로컬 SSD에 연결되는 경우, 게스트 OS에서 멀티 큐 SCSI를 사용해서 SCSI 인터페이스에 대해 최적 성능을 달성할 수 있습니다.
커스텀 이미지 및 로컬 SSD를 포함하는 인스턴스에서 멀티 큐 SCSI 사용
일부 공개 이미지는 멀티 큐 SCSI를 지원합니다.
프로젝트로 가져오는 커스텀 이미지에 멀티 큐 SCSI 기능이 필요한 경우, 이를 직접 사용 설정해야 합니다.
가져온 Linux 이미지는 커널 버전 3.19
이상을 포함하는 경우에만 멀티 큐 SCSI를 사용할 수 있습니다.
커스텀 이미지에서 멀티 큐 SCSI를 사용 설정하려면 VIRTIO_SCSI_MULTIQUEUE
게스트 OS 기능이 사용 설정된 상태로 이미지를 가져오고 GRUB 구성 파일에 항목을 추가합니다.
CentOS
CentOS7만 해당합니다.
API를 사용하여 커스텀 이미지를 가져오고
type
값이VIRTIO_SCSI_MULTIQUEUE
인guestOsFeatures
항목을 포함합니다.커스텀 이미지를 사용해서 인스턴스를 만들고 하나 이상의 로컬 SSD를 연결합니다.
SSH를 통해 인스턴스에 연결합니다.
/sys/module/scsi_mod/parameters/use_blk_mq
파일의 값을 확인합니다.$ cat /sys/module/scsi_mod/parameters/use_blk_mq
이 파일의 값이
Y
면 가져온 이미지에 멀티 큐 SCSI가 이미 사용된 것입니다. 이 파일의 값이N
이면 GRUB 구성 파일의GRUB_CMDLINE_LINUX
항목에scsi_mod.use_blk_mq=Y
를 포함하고 시스템을 다시 시작합니다.텍스트 편집기에서
/etc/default/grub
GRUB 구성 파일을 엽니다.$ sudo vi /etc/default/grub
scsi_mod.use_blk_mq=Y
를GRUB_CMDLINE_LINUX
항목에 추가합니다.GRUB_CMDLINE_LINUX=" vconsole.keymap=us console=ttyS0,38400n8 vconsole.font=latarcyrheb-sun16 scsi_mod.use_blk_mq=Y"
구성 파일을 저장합니다.
grub2-mkconfig
명령어를 실행하여 GRUB 파일을 다시 생성하고 구성을 완료합니다.$ sudo grub2-mkconfig -o /boot/grub2/grub.cfg
인스턴스를 재부팅합니다.
$ sudo reboot
Ubuntu
Compute Engine API를 사용하여 커스텀 이미지를 가져오고
type
값이VIRTIO_SCSI_MULTIQUEUE
인guestOsFeatures
항목을 포함합니다.커스텀 이미지를 사용하여 인스턴스를 만들고 SCSI 인터페이스를 사용하여 하나 이상의 로컬 SSD를 연결합니다.
SSH를 통해 인스턴스에 연결합니다.
/sys/module/scsi_mod/parameters/use_blk_mq
파일의 값을 확인합니다.$ cat /sys/module/scsi_mod/parameters/use_blk_mq
이 파일의 값이
Y
면 가져온 이미지에 멀티 큐 SCSI가 이미 사용된 것입니다. 이 파일의 값이N
이면 GRUB 구성 파일의GRUB_CMDLINE_LINUX
항목에scsi_mod.use_blk_mq=Y
를 포함하고 시스템을 다시 시작합니다.텍스트 편집기에서
sudo nano /etc/default/grub
GRUB 구성 파일을 엽니다.$ sudo nano /etc/default/grub
scsi_mod.use_blk_mq=Y
를GRUB_CMDLINE_LINUX
항목에 추가합니다.GRUB_CMDLINE_LINUX="scsi_mod.use_blk_mq=Y"
구성 파일을 저장합니다.
update-grub
명령어를 실행하여 GRUB 파일을 다시 생성하고 구성을 완료합니다.$ sudo update-grub
인스턴스를 재부팅합니다.
$ sudo reboot
쓰기 캐시 소거 중지
파일 시스템, 데이터베이스, 기타 앱은 여러 체크포인트에서 데이터가 내구성 스토리지에 커밋되었는지 확인하기 위해 캐시 소거를 사용합니다. 대부분의 저장 기기에서는 이러한 기본값이 적합합니다. 하지만 쓰기 캐시 소거는 로컬 SSD에서 상당히 느리게 수행됩니다. 일부 앱에서는 해당 앱에서 자동 소거 명령어를 중지하거나 파일 시스템 수준에서 소거 옵션을 중지하여 쓰기 성능을 높일 수 있습니다.
로컬 SSD는 파일 시스템 및 앱에 대해 사용자가 설정한 소거 명령에 관계없이 항상 2초 내에 캐시된 쓰기를 소거하므로, 일시적인 하드웨어 오류가 발생하더라도 기껏해야 2초 분량의 캐시된 쓰기만 손실될 수 있습니다. 영구적인 하드웨어 오류가 발생하면 데이터가 소거되는지 여부에 관계없이 기기에 있는 모든 데이터가 손실될 수 있으므로 중요한 데이터는 영구 디스크 또는 Cloud Storage 버킷에 백업해야 합니다.
ext4
파일 시스템에서 쓰기 캐시 소거를 사용 중지하려면 마운트 옵션 또는 /etc/fstab
항목에 nobarrier
설정을 포함해야 합니다. 예를 들면 다음과 같습니다.
$ sudo mount -o discard,defaults,nobarrier /dev/[LOCAL_SSD_ID] /mnt/disks/[MNT_DIR]
여기서 [LOCAL_SSD_ID]
는 마운트하려는 로컬 SSD의 기기 ID이고 [MNT_DIR]
은 마운트할 디렉터리입니다.
다음 단계
- 로컬 SSD 벤치마킹
- 로컬 SSD 가격에 대해 자세히 알아보세요.