Depois de provisionar os volumes do Google Cloud Hyperdisk, o aplicativo e o sistema operacional podem exigir ajuste de desempenho para atender às necessidades de desempenho.
Nas seções a seguir, descrevemos alguns elementos principais que podem ser ajustados para melhor desempenho e como aplicar alguns deles a tipos específicos de cargas de trabalho.
Para uma visão geral de como o desempenho do Google Cloud Hyperdisk funciona, consulte Sobre o desempenho do Hyperdisk.
Use uma profundidade de fila de E/S alta
Os volumes de hiperdisco têm latência maior do que os discos conectados localmente, como SSDs locais, porque são dispositivos conectados à rede. Eles podem fornecer IOPS e capacidade muito altas, mas você precisa garantir que solicitações de E/S suficientes sejam realizadas em paralelo. O número de solicitações de E/S feitas em paralelo é chamado de profundidade da fila de E/S.
As tabelas a seguir mostram a profundidade de fila de E/S recomendada para garantir que você atinja um determinado nível de desempenho. As tabelas usam uma pequena superestimação da latência típica para mostrar recomendações conservadoras. O exemplo pressupõe que você esteja usando um tamanho de E/S de 16 KB.
| IOPS desejadas | Profundidade da fila |
|---|---|
| 500 | 1 |
| 1.000 | 2 |
| 2.000 | 4 |
| 4.000 | 8 |
| 8.000 | 16 |
| 16.000 | 32 |
| 32.000 | 64 |
| 64.000 | 128 |
| 100.000 | 200 |
| 200.000 | 400 |
| 320.000 | 640 |
| Capacidade desejada (MB/s) | Profundidade da fila |
|---|---|
| 8 | 1 |
| 16 | 2 |
| 32 | 4 |
| 64 | 8 |
| 128 | 16 |
| 256 | 32 |
| 512 | 64 |
| 1.000 | 128 |
| 1.200 | 153 |
Verifique se você tem CPUs sem custo financeiro
A leitura e a gravação de volumes em hiperdiscos exigem ciclos de CPU da VM. Se a instância de VM tiver pouca CPU, o aplicativo não conseguirá gerenciar as IOPS descritas acima. Para atingir níveis de IOPS muito altos e consistentes, as CPUs precisam estar livres para processar E/S.
Desativar a proteção contra gravação corrompida no nível do banco de dados para otimizar as gravações
Como o Google Cloud Hyperdisk oferece proteção integrada contra gravação corrompida, é possível desativar os recursos de proteção no nível do banco de dados para reduzir a sobrecarga de E/S e aumentar a capacidade de gravação do banco de dados em até 25%. Para saber mais sobre esse recurso, consulte Proteção contra gravação corrompida na página de visão geral do Hyperdisk.
Requisitos de configuração do ambiente
Para que a proteção contra gravação corrompida do Hyperdisk seja eficaz, as gravações do banco de dados não podem ser fragmentadas antes de chegar à camada de armazenamento. Dependendo do banco de dados, é possível fazer isso usando uma das seguintes opções de configuração:
Opção 1: alinhar camadas aos limites de blocos de 16 KiB (recomendado para MySQL e PostgreSQL)
Configure o sistema operacional, o sistema de arquivos e as camadas de software intermediárias para preservar o limite de 16 KiB. Ao usar essa opção, é necessário manter essa configuração específica:
Sistema de arquivos: use um sistema de arquivos
ext4. É necessário criar o sistema de arquivos com a opçãobigalloce configurar o tamanho do cluster do sistema de arquivos para 16 KiB (16.384 bytes) ou um múltiplo maior de 16 KiB:mkfs.ext4 -O bigalloc -C 16384 /dev/<var>DEVICE_NAME</var>Substitua
DEVICE_NAMEpelo nome do dispositivo de armazenamento.Configurações não compatíveis: evite configurações que possam introduzir gravações corrompidas acima da camada de armazenamento em blocos, como as seguintes:
- Executar bancos de dados em contêiner no Google Kubernetes Engine ou no Kubernetes auto-hospedado.
- Armazenar arquivos de banco de dados em um sistema de arquivos
xfs, que normalmente não oferece suporte a tamanhos de bloco suficientes na maioria das distribuições do Linux. - Usar matrizes redundantes de configurações de discos independentes (RAID) ou gerenciadores de volume lógico (LVM) que removem a E/S.
- Usar o Hyperdisk com caches de SSD local, incluindo
lvmcache,dm-cacheoubcache. - Usar a virtualização aninhada para a VM do banco de dados.
Opção 2: usar E/S atômica de blocos do Linux (recomendado para MariaDB)
Se o banco de dados ou aplicativo oferece suporte a E/S atômica de blocos do Linux e acessa
arquivos usando E/S direta (O_DIRECT), é possível ignorar as regras de configuração
listadas na opção 1, desde que você atenda às
seguintes condições:
- Flag RWF_ATOMIC: o aplicativo precisa usar a chamada do sistema
pwritev2()com a flagRWF_ATOMIC. Ao usar essa flag, o kernel do Linux garante que uma operação de gravação seja processada como um único bloco contíguo pelo dispositivo Hyperdisk subjacente. Se o kernel não puder garantir a atomicidade, a chamada de gravação falhará imediatamente para evitar a corrupção de dados. - Sistema operacional: precisa ser a versão 6.11 ou mais recente do kernel do Linux.
- Sistema de arquivos: precisa ser
ext4ouxfsna versão 6.13 ou mais recente do kernel do Linux. - Acesso a arquivos: o aplicativo precisa abrir arquivos de banco de dados usando E/S direta
(
O_DIRECT). - Bancos de dados compatíveis: recomendamos essa opção apenas para a versão 11.x ou mais recente do MariaDB (para suporte genérico ao RWF_ATOMIC do Linux). O MySQL e o PostgreSQL não oferecem suporte a esse recurso.
Para instruções detalhadas de otimização específicas do banco de dados, consulte Configurar o MySQL no Compute Engine.
Analisar as métricas de desempenho do hiperdisco
Você pode revisar as métricas de desempenho do disco no Cloud Monitoring, Cloud de Confiancea solução de monitoramento integrada do. É possível usar essas métricas para observar o desempenho dos discos e de outros recursos de VM em diferentes cargas de trabalho de aplicativos.
Para saber mais, consulte Como analisar métricas de desempenho de disco.
Também é possível usar a página Observabilidade no console para ver as métricas de desempenho do disco.
A seguir
- Saiba mais sobre os preços do hiperdisco.
- Analise as IOPS provisionadas para volumes de hiperdiscos.