I limiti per le prestazioni degli SSD locali forniti nella sezione Scegli un'opzione di archiviazione sono stati ottenuti mediante impostazioni specifiche sull'istanza SSD locale. Se l'istanza di macchina virtuale (VM) ha difficoltà a raggiungere questi limiti di prestazioni e hai già configurato l'istanza utilizzando le impostazioni SSD locali consigliate, puoi confrontare i limiti di prestazioni con i limiti pubblicati replicando le impostazioni utilizzate dal team di Compute Engine.
Queste istruzioni presuppongono che tu stia utilizzando un sistema operativo Linux con il gestore di pacchetti apt
installato.
Crea una macchina virtuale con 8 vCPU e una partizione SSD locale
Creare un'istanza SSD locale con quattro o otto vCPU per ciascun dispositivo, a seconda del carico di lavoro. Ad esempio, se vuoi collegare quattro partizioni SSD locali a un'istanza, utilizza un tipo di macchina con 16 o 32 vCPU.
Il comando seguente crea una macchina virtuale con 8 vCPU e un singolo SSD locale:
gcloud compute instances create ssd-test-instance \ --machine-type "n1-standard-8" \ --local-ssd interface=nvme
Esegui il seguente script sulla tua VM. Lo script replica le impostazioni utilizzate per raggiungere le cifre sulle prestazioni SSD fornite nella sezione sulle prestazioni. Tieni presente che il parametro
--bs
definisce la dimensione del blocco, che influisce sui risultati dei diversi tipi di operazioni di lettura e scrittura.# install tools sudo apt-get -y update sudo apt-get install -y fio util-linux # discard local SSD sectors sudo blkdiscard /dev/disk/by-id/google-local-nvme-ssd-0 # full write pass - measures write bandwidth with 1M blocksize sudo fio --name=writefile --size=100G --filesize=100G \ --filename=/dev/disk/by-id/google-local-nvme-ssd-0 --bs=1M --nrfiles=1 \ --direct=1 --sync=0 --randrepeat=0 --rw=write --refill_buffers --end_fsync=1 \ --iodepth=200 --ioengine=libaio # rand read - measures max read IOPS with 4k blocks sudo fio --time_based --name=benchmark --size=100G --runtime=30 \ --filename=/dev/disk/by-id/google-local-nvme-ssd-0 --ioengine=libaio --randrepeat=0 \ --iodepth=128 --direct=1 --invalidate=1 --verify=0 --verify_fatal=0 \ --numjobs=4 --rw=randread --blocksize=4k --group_reporting # rand write - measures max write IOPS with 4k blocks sudo fio --time_based --name=benchmark --size=100G --runtime=30 \ --filename=/dev/disk/by-id/google-local-nvme-ssd-0 --ioengine=libaio --randrepeat=0 \ --iodepth=128 --direct=1 --invalidate=1 --verify=0 --verify_fatal=0 \ --numjobs=4 --rw=randwrite --blocksize=4k --group_reporting
Crea una macchina virtuale con 32 vCPU e 24 partizioni SSD locali
Se vuoi collegare 24 partizioni SSD locali a un'istanza, utilizza un tipo di macchina con 32 o più vCPU.
Il comando seguente crea una macchina virtuale con 32 vCPU e 24 partizioni SSD locali:
gcloud compute instances create ssd-test-instance \ --machine-type "n1-standard-32" \ --local-ssd interface=nvme \ --local-ssd interface=nvme \ --local-ssd interface=nvme \ --local-ssd interface=nvme \ --local-ssd interface=nvme \ --local-ssd interface=nvme \ --local-ssd interface=nvme \ --local-ssd interface=nvme \ --local-ssd interface=nvme \ --local-ssd interface=nvme \ --local-ssd interface=nvme \ --local-ssd interface=nvme \ --local-ssd interface=nvme \ --local-ssd interface=nvme \ --local-ssd interface=nvme \ --local-ssd interface=nvme \ --local-ssd interface=nvme \ --local-ssd interface=nvme \ --local-ssd interface=nvme \ --local-ssd interface=nvme \ --local-ssd interface=nvme \ --local-ssd interface=nvme \ --local-ssd interface=nvme \ --local-ssd interface=nvme
Installa lo strumento
mdadm
. Il processo di installazione dimdadm
include un messaggio dell'utente che interrompe gli script, quindi esegui il processo manualmente:Debian e Ubuntu
sudo apt update && sudo apt install mdadm --no-install-recommends
CentOS e RHEL
sudo yum install mdadm -y
SLES e openSUSE
sudo zypper install -y mdadm
Usa il comando
lsblk
per identificare tutti gli SSD locali che vuoi montare insieme:lsblk
L'output è simile al seguente:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 10G 0 disk └─sda1 8:1 0 10G 0 part / nvme0n1 259:0 0 375G 0 disk nvme0n2 259:1 0 375G 0 disk nvme0n3 259:2 0 375G 0 disk nvme0n4 259:3 0 375G 0 disk nvme0n5 259:4 0 375G 0 disk nvme0n6 259:5 0 375G 0 disk nvme0n7 259:6 0 375G 0 disk nvme0n8 259:7 0 375G 0 disk nvme0n9 259:8 0 375G 0 disk nvme0n10 259:9 0 375G 0 disk nvme0n11 259:10 0 375G 0 disk nvme0n12 259:11 0 375G 0 disk nvme0n13 259:12 0 375G 0 disk nvme0n14 259:13 0 375G 0 disk nvme0n15 259:14 0 375G 0 disk nvme0n16 259:15 0 375G 0 disk nvme0n17 259:16 0 375G 0 disk nvme0n18 259:17 0 375G 0 disk nvme0n19 259:18 0 375G 0 disk nvme0n20 259:19 0 375G 0 disk nvme0n21 259:20 0 375G 0 disk nvme0n22 259:21 0 375G 0 disk nvme0n23 259:22 0 375G 0 disk nvme0n24 259:23 0 375G 0 disk
Gli SSD locali in modalità SCSI hanno nomi standard simili a
sdb
. Gli SSD locali in modalità NVMe hanno nomi simili anvme0n1
.Usa lo strumento
mdadm
per combinare più dispositivi SSD locali in un singolo array denominato/dev/md0
. In questo esempio vengono uniti ventiquattro dispositivi SSD locali in modalità NVMe. Per i dispositivi SSD locali in modalità SCSI, specifica i nomi ottenuti dal comandolsblk
:sudo mdadm --create /dev/md0 --level=0 --raid-devices=24 \ /dev/nvme0n1 /dev/nvme0n2 /dev/nvme0n3 /dev/nvme0n4 \ /dev/nvme0n5 /dev/nvme0n6 /dev/nvme0n7 /dev/nvme0n8 \ /dev/nvme0n9 /dev/nvme0n10 /dev/nvme0n11 /dev/nvme0n12 \ /dev/nvme0n13 /dev/nvme0n14 /dev/nvme0n15 /dev/nvme0n16 \ /dev/nvme0n17 /dev/nvme0n18 /dev/nvme0n19 /dev/nvme0n20 \ /dev/nvme0n21 /dev/nvme0n22 /dev/nvme0n23 /dev/nvme0n24
La risposta è simile alla seguente:
mdadm: Defaulting to version 1.2 metadata mdadm: array /dev/md0 started.
Esegui il seguente script sulla tua VM. Lo script replica le impostazioni utilizzate per raggiungere i valori delle prestazioni SSD forniti nella sezione sulle prestazioni. Il parametro
--bs
definisce le dimensioni del blocco, il che influisce sui risultati per i diversi tipi di operazioni di lettura e scrittura.# install tools sudo apt-get -y update sudo apt-get install -y fio util-linux # full write pass - measures write bandwidth with 1M blocksize sudo fio --name=writefile --size=100G --filesize=100G \ --filename=/dev/md0 --bs=1M --nrfiles=1 \ --direct=1 --sync=0 --randrepeat=0 --rw=write --refill_buffers --end_fsync=1 \ --iodepth=200 --ioengine=libaio # rand read - measures max read IOPS with 4k blocks sudo fio --time_based --name=benchmark --size=100G --runtime=30 \ --filename=/dev/md0 --ioengine=libaio --randrepeat=0 \ --iodepth=128 --direct=1 --invalidate=1 --verify=0 --verify_fatal=0 \ --numjobs=32 --rw=randread --blocksize=4k --group_reporting --norandommap # rand write - measures max write IOPS with 4k blocks sudo fio --time_based --name=benchmark --size=100G --runtime=30 \ --filename=/dev/md0 --ioengine=libaio --randrepeat=0 \ --iodepth=128 --direct=1 --invalidate=1 --verify=0 --verify_fatal=0 \ --numjobs=32 --rw=randwrite --blocksize=4k --group_reporting --norandommap
Passaggi successivi
- Ulteriori informazioni sui prezzi degli SSD locali.