Otimize o desempenho do disco permanente (original) (raw)

LinuxJanelas


Os discos permanentes oferecem o desempenho descrito no gráfico de tipos de disco se a VM gerar um uso suficiente para atingir os limites de desempenho. Depois de dimensionar os volumes do disco permanente para atender às suas necessidades de desempenho, a carga de trabalho e o sistema operacional poderão precisar de alguns ajustes.

As seções a seguir descrevem as características da VM e da carga de trabalho que afetam o desempenho do disco e discutem alguns elementos-chave que podem ser ajustados para melhorar o desempenho. Algumas das sugestões e como aplicar algumas delas a tipos específicos de cargas de trabalho.

Fatores que afetam o desempenho do disco

As seções a seguir descrevem os fatores que afetam o desempenho do disco para uma VM.

Limites de saída de rede na taxa de transferência de gravação

Sua VM tem um limite de saída de rede que depende do tipo de máquina da VM.

O Compute Engine armazena dados em discos permanentes com diversas gravações paralelas para garantir redundância integrada. Além disso, cada solicitação de gravação possui alguma sobrecarga que utiliza largura de banda de gravação adicional.

O tráfego máximo de gravação que uma instância de VM pode emitir é o limite de saída da rede dividido por um multiplicador de largura de banda que leva em conta a replicação e a sobrecarga.

Os limites de saída de rede estão listados na coluna Largura de banda máxima de saída (Gbps) nas tabelas de tipo de máquina para famílias de máquinas de uso geral , otimizadas para computação , otimizadas para armazenamento , otimizadas para memória e otimizadas para acelerador .

O multiplicador de largura de banda é de aproximadamente 1,16x com utilização total da rede, o que significa que 16% dos bytes gravados são sobrecarga. Para discos permanentes regionais, o multiplicador de largura de banda é de aproximadamente 2,32x para compensar a sobrecarga adicional de replicação.

Em uma situação em que as operações de leitura e gravação do disco permanente competem com a largura de banda de saída da rede, 60% da largura de banda máxima de saída da rede, definida pelo tipo de máquina, é alocada para gravações do disco permanente. Os 40% restantes estão disponíveis para todos os outros tráfegos de saída da rede. Consulte a largura de banda de saída para obter detalhes sobre outro tráfego de saída da rede.

O exemplo a seguir mostra como calcular a largura de banda máxima de gravação para um disco permanente em uma instância de VM N1 . A alocação de largura de banda é a parte da largura de banda de saída da rede alocada para o disco permanente. A largura de banda máxima de gravação é a largura de banda máxima de gravação do disco permanente ajustada para sobrecarga.

Contagem de vCPUs de VM Limite de saída de rede (MB/s) Alocação de largura de banda (MB/s) Largura de banda máxima de gravação (MB/s) Largura de banda máxima de gravação com utilização total da rede (MB/s)
1 250 150 216 129
2-7 1.250 750 1.078 647
8-15 2.000 1.200 1.724 1.034
16+ 4.000 2.400 3.448 2.069

Você pode calcular a largura de banda máxima do disco permanente usando as seguintes fórmulas:

VM N1 com 1 vCPU

O limite de saída da rede é:

2 Gbps/8 bits = 0,25 GB por segundo = 250 MB por segundo

A alocação de largura de banda do disco permanente com utilização total da rede é:

250 MB por segundo * 0,6 = 150 MB por segundo.

A largura de banda máxima de gravação do disco permanente sem contenção de rede é:

A largura de banda máxima de gravação do disco permanente com utilização total da rede é:

Os limites de saída da rede fornecem um limite superior de desempenho. Outros fatores podem limitar o desempenho abaixo deste nível. Consulte as seções a seguir para obter informações sobre outras restrições de desempenho.

Leituras e gravações simultâneas

Para discos permanentes padrão, leituras e gravações simultâneas compartilham os mesmos recursos. Quando sua VM usa mais taxa de transferência de leitura ou IOPS, ela consegue realizar menos gravações. Por outro lado, as instâncias que usam mais taxa de transferência de gravação ou IOPS conseguem realizar menos leituras.

Os volumes de disco permanente não podem atingir simultaneamente a taxa de transferência máxima e os limites de IOPS para leituras e gravações.

O cálculo da taxa de transferência é IOPS * I/O size . Para aproveitar os limites máximos de taxa de transferência para leituras e gravações simultâneas no disco permanente SSD, use um tamanho de E/S tal que as IOPS de leitura e gravação combinadas não excedam o limite de IOPS.

A tabela a seguir lista os limites de IOPS por VM para leituras e gravações simultâneas.

Disco permanente padrão Disco permanente SSD (8 vCPUs) Disco permanente SSD (mais de 32 vCPUs) Disco permanente SSD (mais de 64 vCPUs)
Ler Escrever Ler Escrever Ler Escrever Ler Escrever
7.500 0 15.000 0 60.000 0 100.000 0
5.625 3.750 11.250 3.750 45.000 15.000 75.000 25.000
3.750 7.500 7.500 7.500 30.000 30.000 50.000 50.000
1875 11.250 3.750 11.250 15.000 45.000 25.000 75.000
0 15.000 0 15.000 0 60.000 0 100.000

Os números de IOPS nesta tabela são baseados em um tamanho de E/S de 8 KB. Outros tamanhos de E/S, como 16 KB, podem ter números de IOPS diferentes, mas mantêm a mesma distribuição de leitura/gravação.

A tabela a seguir lista os limites de produção (MB por segundo) por VM para leituras e gravações simultâneas.

Disco permanente padrão Disco permanente SSD (6 a 14 vCPUs) Disco permanente SSD (mais de 16 vCPUs)
Ler Escrever Ler Escrever Ler Escrever
1200 0 800 * 800 * 1.200 * 1.200 *
900 100
600 200
300 300
0 400

* Para discos permanentes SSD, a capacidade máxima de leitura e a capacidade máxima de gravação são independentes uma da outra, portanto, esses limites são constantes.

Tamanho do volume lógico

O disco permanente pode ter até 64 TiB de tamanho e você pode criar volumes lógicos únicos de até 257 TiB usando o gerenciamento de volumes lógicos dentro de sua VM. Um tamanho de volume maior afeta o desempenho das seguintes maneiras:

Vários discos anexados a uma única instância de VM

Os limites de desempenho dos discos quando você tem vários discos conectados a uma VM dependem de os discos serem do mesmo tipo ou de tipos diferentes.

Vários discos do mesmo tipo

Se você tiver vários discos do mesmo tipo anexados a uma instância de VM no mesmo modo (por exemplo, leitura/gravação), os limites de desempenho serão iguais aos limites de um único disco que tenha o tamanho combinado desses discos. Se você usar todos os discos em 100%, o limite de desempenho agregado será dividido igualmente entre os discos, independentemente do tamanho relativo do disco.

Por exemplo, suponha que você tenha um disco pd-standard 200 GB e um disco pd-standard 1.000 GB. Se você não usar o disco de 1.000 GB, o disco de 200 GB poderá atingir o limite de desempenho de um disco padrão de 1.200 GB. Se você usar ambos os discos a 100%, cada um terá o limite de desempenho de um disco pd-standard 600 GB (1.200 GB/2 discos = disco de 600 GB).

Vários discos de diferentes tipos

Se você anexar diferentes tipos de discos a uma VM, o desempenho máximo possível será o limite de desempenho do disco mais rápido compatível com a VM. O desempenho cumulativo dos discos anexados não excederá os limites de desempenho do disco mais rápido compatível com a VM.

Otimize seus discos para IOPS ou cargas de trabalho orientadas à taxa de transferência

As recomendações de desempenho dependem se você deseja maximizar o IOPS ou o rendimento.

Cargas de trabalho orientadas para IOPS

Bancos de dados, sejam SQL ou NoSQL, possuem padrões de uso de acesso aleatório aos dados. O Google recomenda os seguintes valores para cargas de trabalho orientadas a IOPS:

Valores de leitura antecipada mais baixos são normalmente sugeridos em documentos de práticas recomendadas para MongoDB , Apache Cassandra e outros aplicativos de banco de dados.

Cargas de trabalho orientadas para throughput

As operações de streaming, como um trabalho do Hadoop, se beneficiam de leituras sequenciais rápidas, e tamanhos maiores de E/S podem aumentar o desempenho do streaming.

Mudanças na carga de trabalho que podem melhorar o desempenho do disco

Certos comportamentos de carga de trabalho podem melhorar o desempenho das operações de E/S nos discos anexados.

Use uma profundidade de fila de E/S alta

Os discos permanentes têm latência mais alta do que os discos conectados localmente, como os discos SSD locais, porque são dispositivos conectados à rede. Eles podem fornecer IOPS e rendimento muito altos, mas você deve garantir que solicitações de E/S suficientes sejam feitas em paralelo. O número de solicitações de E/S feitas em paralelo é conhecido como profundidade da fila de E/S .

As tabelas abaixo mostram a profundidade da fila de E/S recomendada para garantir que você possa atingir um determinado nível de desempenho. Observe que a tabela abaixo usa uma ligeira 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.

Profundidade recomendada da fila de E/S

Para discos permanentes SSD, balanceados e extremos:

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
Taxa de transferência 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

Para disco permanente padrão:

IOPS desejadas Profundidade da fila
200 1
400 2
800 4
1.600 8
3.200 16
6.400 32
12.800 64
15.000 75
Taxa de transferência desejada (MB/s) Profundidade da fila
3.2 1
6.4 2
12,8 4
25,6 8
51.2 16
102,4 32
204,8 64
400 125

Gere E/S suficientes usando tamanho de E/S grande

Limite cargas pesadas de E/S a um intervalo máximo

Um intervalo refere-se a um intervalo contíguo de endereços de blocos lógicos em um único disco físico. Cargas pesadas de E/S alcançam desempenho máximo quando limitadas a um determinado intervalo máximo, que depende do tipo de máquina da VM à qual o disco está conectado, conforme listado na tabela a seguir.

Tipo de máquina Extensão máxima recomendada
m2-megamem-416 VMs C2D 25 TB
Todos os outros tipos de máquinas 50 TB

Os períodos em discos permanentes separados que somam 50 TB ou menos podem ser considerados iguais a um único intervalo de 50 TB para fins de desempenho.

Mudanças no sistema operacional para melhorar o desempenho do disco

Em alguns casos, você pode ativar ou desativar recursos no nível do sistema operacional ou configurar os discos anexados de maneiras específicas para melhorar o desempenho do disco.

Evite usar sistemas de arquivos ext3 no Linux

Usar o sistema de arquivos ext3 em uma VM Linux pode resultar em desempenho muito ruim sob cargas pesadas de gravação. Use ext4 quando possível. O driver do sistema de arquivos ext4 é compatível com versões anteriores de ext3/ext2 e suporta a montagem de sistemas de arquivos ext3. O sistema de arquivos ext4 é o padrão na maioria dos sistemas operacionais Linux.

Se não for possível migrar para o ext4, como solução alternativa, você poderá montar sistemas de arquivos ext3 com a opção de montagem data=journal . Isso melhora o IOPS de gravação em detrimento da taxa de transferência de gravação. A migração para o ext4 pode resultar em uma melhoria de até 7x em alguns benchmarks.

Desative a inicialização lenta e ative os comandos DISCARD

Os discos permanentes suportam operações de descarte ou comandos TRIM , que permitem que os sistemas operacionais informem os discos quando os blocos não estiverem mais em uso. O suporte para descarte permite que o sistema operacional marque blocos de disco como não mais necessários, sem incorrer no custo de zerar os blocos.

Na maioria dos sistemas operacionais Linux, você habilita operações de descarte ao montar um disco permanente na VM. As VMs do Windows Server 2012 R2 permitem operações de descarte por padrão quando você monta um disco permanente.

Habilitar operações de descarte pode aumentar o desempenho geral do tempo de execução e também pode acelerar o desempenho do seu disco quando ele é montado pela primeira vez. A formatação de um volume de disco inteiro pode ser demorada, portanto a formatação preguiçosa é uma prática comum. A desvantagem da formatação lenta é que o custo geralmente é pago na primeira vez que o volume é montado. Ao desabilitar a inicialização lenta e habilitar operações de descarte, você pode obter operações rápidas de formatação e montagem.

-E lazy_itable_init=0,lazy_journal_init=0,discard  

O parâmetro lazy_journal_init=0 não funciona em instâncias com imagens CentOS 6 ou RHEL 6 . Para VMs que usam esses sistemas operacionais, formate o disco permanente sem esse parâmetro.

-E lazy_itable_init=0,discard  
-o discard  

O disco permanente funciona bem com as operações de descarte habilitadas. No entanto, você pode opcionalmente executar fstrim periodicamente além ou em vez de usar operações de descarte. Se você não usar operações de descarte, execute fstrim antes de criar um instantâneo do seu disco de inicialização. Cortar o sistema de arquivos permite criar imagens de snapshot menores, o que reduz o custo de armazenamento de snapshots.

Ajuste o valor de leitura antecipada

Para melhorar o desempenho de E/S, os sistemas operacionais empregam técnicas como readahead , em que uma quantidade maior de um arquivo do que o solicitado é lida na memória com a suposição de que leituras subsequentes provavelmente precisarão desses dados. Um readahead mais alto aumenta o rendimento em detrimento da memória e do IOPS. Um readahead menor aumenta o IOPS em detrimento da taxa de transferência.

Em sistemas Linux, você pode obter e definir o valor readahead com o comando blockdev :

$ sudo blockdev --getra /dev/DEVICE_ID

$ sudo blockdev --setra VALUE /dev/DEVICE_ID

O valor readahead é <desired_readahead_bytes> /512 bytes.

Por exemplo, para um readahead de 8 MB, 8 MB equivalem a 8388608 bytes (8 * 1024 * 1024).

8388608 bytes / 512 bytes = 16384

Você definiu blockdev como 16384 :

$ sudo blockdev --setra 16384 /dev/DEVICE_ID

Modifique sua VM ou crie uma nova VM

Existem limites associados a cada tipo de máquina VM que podem afetar o desempenho que você pode obter dos discos anexados. Esses limites incluem:

Certifique-se de ter CPUs livres

Ler e gravar em disco permanente requer ciclos de CPU da sua VM. Para atingir níveis de IOPS muito altos e consistentes, você deve ter CPUs livres para processar E/S.

Para aumentar o número de vCPUs disponíveis com sua VM, você pode criar uma nova VM ou editar o tipo de máquina de uma instância de VM .

Crie uma nova VM para obter novas funcionalidades

Os tipos de disco mais recentes não são compatíveis com todas as séries ou tipos de máquinas. O hiperdisco fornece IOPS ou taxas de transferência mais altas para suas cargas de trabalho, mas atualmente está disponível apenas com algumas séries de máquinas e requer pelo menos 64 vCPUs.

Novas séries de máquinas VM normalmente são executadas em CPUs mais recentes, que podem oferecer melhor desempenho que seus antecessores. Além disso, CPUs mais recentes podem oferecer suporte a funcionalidades adicionais para melhorar o desempenho de suas cargas de trabalho, como Advanced Matrix Extensions (AMX) ou Intel Advanced Vector Extensions (AVX-512).

O que vem a seguir