O gráfico de desempenho por tipo de disco descreve o desempenho máximo possível para partições SSD locais. Para otimizar os apps e as instâncias de VM visando atingir essas velocidades, use as seguintes práticas recomendadas:
Uso de otimizações do ambiente de convidado para SSDs locais
Por padrão, a maioria das imagens Linux fornecidas pelo Compute Engine
executa automaticamente um script de otimização que configura a instância para garantir o
desempenho máximo de SSD local. O script também ativa determinadas
configurações de filas sysfs
(link em inglês)
que melhoram o desempenho geral da máquina e mascaram
solicitações de interrupção (IRQs, na sigla em inglês)
para CPUs virtuais (vCPUs) específicas. Esse script só otimiza o desempenho das
partições SSD locais do Compute Engine.
Imagens Ubuntu, SLES e outras mais antigas talvez não estejam configuradas para incluir essa otimização de desempenho. Se você usa qualquer uma dessas imagens ou uma mais antiga que a v20141218, é possível instalar o ambiente convidado para ativar essas otimizações.
Selecionar a melhor imagem para interfaces NVMe ou SCSI
Os SSDs locais expõem uma interface NVMe ou SCSI, e a melhor opção depende do sistema operacional que você está usando. Escolha uma interface para as partições SSD locais que funcionam melhor com sua imagem do disco de inicialização. Caso as suas instâncias conectem-se a SSDs locais usando interfaces SCSI, ative o SCSI multifilas no sistema operacional convidado para melhorar o desempenho na interface do SCSI.
Ativar SCSI multifilas em instâncias com imagens personalizadas e SSDs locais
Algumas imagens públicas são compatíveis com SCSI multifilas.
Caso precise de recursos SCSI multifilas em imagens personalizadas importadas para seu projeto, será necessário ativá-las por conta própria.
Suas imagens importadas do Linux usam SCSI multifilas somente quando elas incluem a versão 3.19
ou posterior do kernel.
Para ativar o SCSI multifilas em uma imagem personalizada, importe a imagem com o recurso do sistema operacional convidado VIRTIO_SCSI_MULTIQUEUE
ativado e inclua uma entrada na configuração do GRUB:
CentOS
Apenas para o CentOS7.
Importe a imagem personalizada usando a API e inclua um item
guestOsFeatures
com um valortype
deVIRTIO_SCSI_MULTIQUEUE
.Crie uma instância usando sua imagem personalizada e anexe um ou mais SSDs locais.
Conecte-se à instância pelo SSH.
Verifique o valor do arquivo
/sys/module/scsi_mod/parameters/use_blk_mq
$ cat /sys/module/scsi_mod/parameters/use_blk_mq
Se o valor desse arquivo for
Y
, o SCSI multifilas já estará ativado na imagem importada. Se o valor forN
, incluascsi_mod.use_blk_mq=Y
na entradaGRUB_CMDLINE_LINUX
do arquivo de configuração GRUB e reinicie o sistema.Abra o arquivo de configuração GRUB
/etc/default/grub
em um editor de texto.$ sudo vi /etc/default/grub
Adicione
scsi_mod.use_blk_mq=Y
à entradaGRUB_CMDLINE_LINUX
.GRUB_CMDLINE_LINUX=" vconsole.keymap=us console=ttyS0,38400n8 vconsole.font=latarcyrheb-sun16 scsi_mod.use_blk_mq=Y"
Salve o arquivo de configuração.
Execute o comando
grub2-mkconfig
para gerar novamente o arquivo GRUB e concluir a configuração.$ sudo grub2-mkconfig -o /boot/grub2/grub.cfg
Reinicie a instância.
$ sudo reboot
Ubuntu
Importe a imagem personalizada usando a API do Compute Engine e inclua um item
guestOsFeatures
com um valortype
deVIRTIO_SCSI_MULTIQUEUE
.Crie uma instância usando a imagem personalizada e anexe um ou mais SSDs locais usando a interface SCSI.
Conecte-se à instância pelo SSH.
Verifique o valor do arquivo
/sys/module/scsi_mod/parameters/use_blk_mq
.$ cat /sys/module/scsi_mod/parameters/use_blk_mq
Se o valor desse arquivo for
Y
, o SCSI multifilas já estará ativado na imagem importada. Se o valor forN
, incluascsi_mod.use_blk_mq=Y
na entradaGRUB_CMDLINE_LINUX
do arquivo de configuração GRUB e reinicie o sistema.Abra o arquivo de configuração GRUB
sudo nano /etc/default/grub
em um editor de texto.$ sudo nano /etc/default/grub
Adicione
scsi_mod.use_blk_mq=Y
à entradaGRUB_CMDLINE_LINUX
.GRUB_CMDLINE_LINUX="scsi_mod.use_blk_mq=Y"
Salve o arquivo de configuração.
Execute o comando
update-grub
para gerar novamente o arquivo GRUB e concluir a configuração.$ sudo update-grub
Reinicie a instância.
$ sudo reboot
Desativar a limpeza do cache de gravação
Os sistemas de arquivos, bancos de dados e outros apps usam a limpeza de cache (em inglês) para garantir que os dados sejam confirmados para armazenamento durável em diversos checkpoints. Para a maioria dos dispositivos de armazenamento, esse padrão faz sentido. No entanto, as limpezas do cache de gravação são muito lentas em SSDs locais. É possível melhorar o desempenho de gravação para alguns apps desativando comandos de limpeza automática neles ou opções de limpeza no nível do sistema de arquivos.
Os SSDs locais sempre limpam gravações em cache dentro de dois segundos, independentemente dos comandos de limpeza definidos para os sistemas de arquivos e os apps. Dessa forma, as falhas de hardware temporárias podem fazer você perder, no máximo, apenas dois segundos de gravações armazenados em cache. As falhas permanentes de hardware ainda podem causar perda de todos os dados no dispositivo, mesmo eles sendo limpos ou não. Por isso, faça o backup de dados importantes em discos permanentes ou buckets do Cloud Storage.
Para desativar a limpeza do cache de gravação em sistemas de arquivos ext4
, inclua a configuração nobarrier
(link em inglês) nas opções de ativação ou nas entradas de /etc/fstab
. Por exemplo:
$ sudo mount -o discard,defaults,nobarrier /dev/[LOCAL_SSD_ID] /mnt/disks/[MNT_DIR]
em que [LOCAL_SSD_ID]
é o ID de dispositivo do SSD local que você quer
ativar e [MNT_DIR]
é o diretório de montagem.
A seguir
- Veja o comparativo de mercado dos seus SSDs locais.
- Saiba mais sobre preços de SSDs locais