As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Compare os volumes da Amazon EBS
Você pode testar o desempenho dos EBS volumes da Amazon simulando cargas de trabalho de E/S. O processo é o seguinte:
-
Execute uma instância EBS otimizada.
-
Crie novos EBS volumes.
-
Anexe os volumes à sua instância EBS otimizada.
-
Configure e monte o dispositivo de blocos.
-
Instale uma ferramenta para comparar a performance de E/S.
-
Compare a performance de E/S de seus volumes.
-
Exclua os volumes e encerre sua instância para não continuar a ser cobrado.
Importante
Alguns dos procedimentos resultam na destruição dos dados existentes nos EBS volumes que você comparou. Os procedimentos de comparação são destinados ao uso em volumes criados especialmente para fins de teste, não volumes de produção.
Configurar a instância
Para obter o desempenho ideal dos EBS volumes, recomendamos que você use uma instância EBS -optimizada. EBS-instâncias otimizadas oferecem taxa de transferência dedicada entre a Amazon e a EC2 AmazonEBS, com instância. EBS-instâncias otimizadas oferecem largura de banda dedicada entre a EC2 Amazon e a AmazonEBS, com especificações dependendo do tipo de instância.
Para criar uma instância EBS otimizada, escolha Launch como instância EBS otimizada ao iniciar a instância usando o EC2 console da Amazon ou especifique --ebs-optimized ao usar a linha de comando. Certifique-se de selecionar um tipo de instância que ofereça suporte a essa opção.
Configurar volumes provisionados IOPS SSD ou de uso geral SSD
Para criar volumes provisionados IOPS SSD (io1
eio2
) ou de uso geral SSD (gp2
egp3
) usando o EC2 console da Amazon, para o tipo de volume, escolha Provisionado IOPS SSD (io1), Provisionado (io2), Uso geral IOPSSSD(gp2) ou Uso geral SSD (gp3). SSD Na linha de comando, especifique io1
, io2
, gp2
ou gp3
para o parâmetro --volume-type. Para io1
io2
, e gp3
volumes, especifique o número de operações de E/S por segundo (IOPS) para o --iops parâmetro. Para ter mais informações, consulte Tipos de EBS volume da Amazon e Crie um EBS volume da Amazon.
(Somente instâncias Linux) Para os testes de exemplo, recomendamos que você crie uma matriz RAID 0 com 6 volumes, que ofereça um alto nível de desempenho. Como você é cobrado por gigabytes provisionados (e pelo número de volumes provisionados IOPS para volumes io1, io2 e gp3), não pelo número de volumes, não há custo adicional para criar vários volumes menores e usá-los para criar um conjunto de faixas. Se você estiver usando o Oracle Orion para comparar seus volumes, ele pode simular o striping da mesma forma que o Oracle, então recomendamos que você deixe ASM o Orion fazer o striping. Se você estiver usando uma ferramenta de comparação diferente, precisará fazer o stripe de volumes por conta própria.
Para obter mais informações sobre como criar uma matriz RAID 0, consulteCriar uma matriz RAID 0.
Configurar volumes com taxa de transferência otimizada HDD (st1
) ou fria HDD (sc1
)
Para criar um st1
volume, escolha Throughput Optimized HDD ao criar o volume usando o EC2 console da Amazon ou especifique --type st1
ao usar a linha de comando. Para criar um sc1
volume, escolha Cold HDD ao criar o volume usando o EC2 console da Amazon ou especifique --type sc1
ao usar a linha de comando. Para obter informações sobre a criação de EBS volumes, consulteCrie um EBS volume da Amazon. Para obter informações sobre como anexar esses volumes à sua instância, consulte Anexar um EBS volume da Amazon a uma EC2 instância da Amazon.
(somente instâncias Linux) AWS fornece um JSON modelo para uso AWS CloudFormation que simplifica esse procedimento de configuração. Acesse o modelost1
volumes. O modelo cria uma instância de geração atual e um volume st1
de 2 TiB e anexa o volume à instância em /dev/xvdf
.
(Somente instâncias Linux) Para criar um HDD volume usando o modelo
Abra o AWS CloudFormation console em https://console.aws.amazon.com/cloudformation
. -
Selecione Create Stack (Criar pilha).
-
Escolha Carregar um modelo para o Amazon S3 e selecione o JSON modelo que você obteve anteriormente.
-
Dê à sua pilha um nome como “ebs-perf-testing” e selecione um tipo de instância (o padrão é r3.8xlarge) e uma chave. SSH
-
Selecione Next duas vezes e, em seguida, escolha Create Stack.
-
Depois que o status da sua nova pilha passar de CREATE_IN_ PROGRESS para COMPLETE, escolha Saídas para obter a DNS entrada pública para sua nova instância, que terá um volume de 2
st1
TiB anexado a ela. -
Conecte-se usando SSH sua nova pilha como usuário
ec2-user
, com o nome do host obtido da DNS entrada na etapa anterior. -
Vá para Instalar ferramentas de comparação.
Instalar ferramentas de comparação
As tabelas a seguir listam algumas das ferramentas possíveis que você pode usar para avaliar o desempenho dos EBS volumes.
Ferramenta | Descrição |
---|---|
fio |
Para comparar a performance de E/S. Observe que fio tem uma dependência sobre Execute o comando a seguir para instalar o fio no Amazon Linux:
Para instalar fio no Ubuntu, execute o seguinte comando:
|
Para calibrar a performance de E/S de sistemas de armazenamento a serem usados com bancos de dados do Oracle. |
Ferramenta | Descrição |
---|---|
DiskSpd |
DiskSpd é uma ferramenta de desempenho de armazenamento das equipes de engenharia de infraestrutura do Windows, Windows Server e Cloud Server da Microsoft. Ele está disponível para download em https://github.com/Microsoft/diskspd/releases Depois de fazer download do arquivo executável Copie o arquivo executável O código-fonte do DiskSpd está hospedado GitHub em: https://github.com/Microsoft/diskspd |
CrystalDiskMark |
CrystalDiskMark é um software simples de benchmark de disco. Ele está disponível para download em https://crystalmark. info/en/software/crystaldiskmark |
Essas ferramentas de avaliação oferecem suporte a uma ampla variedade de parâmetros de teste. Use os comandos que aproximam workloads às quais seus volumes oferecerão suporte. Os comandos fornecidos abaixo servem como exemplos para ajudá-lo a começar a usar.
Escolha o comprimento da fila de volume
Escolha do melhor comprimento da fila de volume com base em sua workload e tipo de volume.
Tamanho da fila em volumes SSD suportados
Para determinar o tamanho ideal da fila para sua carga de trabalho em volumes SSD suportados, recomendamos que você tenha como meta um tamanho de fila de 1 para cada 1.000 IOPS disponíveis (linha de base para volumes de uso geral e a quantidade provisionada para SSD volumes provisionados). IOPS SSD Depois, é possível monitorar a performance de sua aplicação e ajustar esse valor com base nos requisitos da aplicação.
Aumentar o tamanho da fila é benéfico até que você alcance o valor provisionadoIOPS, de taxa de transferência ou de tamanho ideal da fila do sistema, atualmente definido como 32. Por exemplo, um volume com 3.000 provisionados IOPS deve ter como alvo um tamanho de fila de 3. É necessário experimentar ajustar esses valores para cima ou para baixo para ver qual funciona melhor para sua aplicação.
Tamanho da fila em volumes HDD suportados
Para determinar o tamanho ideal da fila para sua carga de trabalho em volumes HDD suportados, recomendamos que você tenha como meta um tamanho de fila de pelo menos 4 enquanto executa E/S sequenciais de 1 MiB. Depois, é possível monitorar a performance de sua aplicação e ajustar esse valor com base nos requisitos da aplicação. Por exemplo, um st1
volume de 2 TiB com taxa de transferência de pico de 500, respectivamente. MiB/s and IOPS of 500 should target a queue length of 4, 8, or 16 while performing 1,024
KiB, 512 KiB, or 256 KiB sequential I/Os É necessário experimentar ajustar esses valores para cima ou para baixo e ver qual funciona melhor com sua aplicação.
Desabilitar estados C
Antes de executar a referência, desative os estados C do processador. Os núcleos temporariamente ociosos em um suporte CPU podem entrar no estado C para economizar energia. Quando o núcleo é chamado para retomar o processamento, leva um determinado tempo até o núcleo voltar a funcionar por completo. Esta latência pode interferir nas rotinas de comparação do processador. Para obter mais informações sobre os estados C e quais tipos de EC2 instância os suportam, consulte Controle de estado do processador para sua EC2 instância.
Você pode desativar os estados C no Amazon Linux e CentOS da seguinte forma: RHEL
Obtenha o número de estados C.
$
cpupower idle-info | grep "Number of idle states:"
Desative os estados C de c1 a cN. De preferência, os núcleos devem estar no estado c0.
$
for i in `seq 1 $((N-1))`; do cpupower idle-set -d $i; done
É possível desativar os estados C no Windows da seguinte maneira:
-
Em PowerShell, obtenha o esquema de energia ativa atual.
$current_scheme = powercfg /getactivescheme
-
Obtenha o esquema de energiaGUID.
(Get-WmiObject -class Win32_PowerPlan -Namespace "root\cimv2\power" -Filter "ElementName='High performance'").InstanceID
-
Obtenha a configuração de energiaGUID.
(Get-WmiObject -class Win32_PowerSetting -Namespace "root\cimv2\power" -Filter "ElementName='Processor idle disable'").InstanceID
-
Obtenha o subgrupo GUID de configuração de energia.
(Get-WmiObject -class Win32_PowerSettingSubgroup -Namespace "root\cimv2\power" -Filter "ElementName='Processor power management'").InstanceID
-
Desative os estados C definindo o valor do índice como 1. Um valor igual a 0 indica que os estados C estão desativados.
powercfg /setacvalueindex
<power_scheme_guid>
<power_setting_subgroup_guid>
<power_setting_guid>
1 -
Defina o esquema ativo para garantir que as configurações sejam salvas.
powercfg /setactive
<power_scheme_guid>
Benchmarking de performance
Os procedimentos a seguir descrevem os comandos de benchmarking para vários tipos de EBS volume.
Execute os comandos a seguir em uma instância EBS otimizada com EBS volumes anexados. Se os EBS volumes foram criados a partir de instantâneos, certifique-se de inicializá-los antes do benchmarking. Para obter mais informações, consulte Inicializar volumes da Amazon EBS.
dica
Você pode usar os histogramas de latência de E/S fornecidos pelas estatísticas EBS detalhadas de desempenho para comparar a distribuição do desempenho de E/S em seus testes de benchmarking. Para obter mais informações, consulte Estatísticas EBS detalhadas de desempenho da Amazon.
Após terminar de testar seus volumes, consulte os seguintes tópicos para obter ajuda para limpar: Excluir um EBS volume da Amazon e Encerrar a instância.
Compare volumes provisionados IOPS SSD e de uso geral SSD
Execute fio na matriz RAID 0 que você criou.
O seguinte comando executa operações de gravação aleatórias de 16 KB.
$
sudo fio--directory=/mnt/
p_iops_vol0
--ioengine=psync--name
fio_test_file
--direct=1 --rw=randwrite --bs=16k --size=1G --numjobs=16 --time_based --runtime=180 --group_reporting --norandommap
O seguinte comando executa operações de leitura aleatórias de 16 KB.
$
sudo fio--directory=/mnt/
p_iops_vol0
--name
fio_test_file
--direct=1 --rw=randread --bs=16k --size=1G --numjobs=16 --time_based --runtime=180 --group_reporting --norandommap
Para obter mais informações sobre como interpretar os resultados, consulte este tutorial: Inspeção de performance de E/S de disco com fio
Execute DiskSpd no volume que você criou.
O comando a seguir executará um teste de E/S aleatório de 30 segundos usando um arquivo de teste de 20 GB localizado na unidade C:
, com taxas de 25% de gravação e de 75% de leitura e um tamanho de bloco de 8 K. Ele usará oito threads de operador, cada um com quatro operações de E/S pendentes, e uma semente de valor de entropia de gravação de 1 GB. Os resultados do teste serão salvos em um arquivo de texto chamado DiskSpeedResults.txt
. Esses parâmetros simulam uma carga de OLTP trabalho SQL do servidor.
diskspd -b8K -d30 -o4 -t8 -h -r -w25 -L -Z1G -c20G C:\iotest.dat > DiskSpeedResults.txt
Para obter mais informações sobre como interpretar os resultados, consulte este tutorial: Inspecionando o desempenho de E/S do disco com D. iskSPd
Benchmark de volumes st1
e sc1
(instâncias do Linux)
Execute fio em seu volume do st1
ou sc1
.
nota
Antes de executar esses testes, defina E/S em buffer na instância conforme descrito em Aumentar a leitura antecipada para workloads com muitas operações de leitura e alta throughput em st1 e sc1 (somente instâncias do Linux).
O seguinte comando executa operações de leitura sequenciais de 1 MiB em um dispositivo de blocos st1
anexado (por exemplo, /dev/xvdf
):
$
sudo fio--filename=/dev/
<device>
--direct=1 --rw=read
--randrepeat=0 --ioengine=libaio --bs=1024k --iodepth=8 --time_based=1 --runtime=180
--name=fio_direct_read_test
O seguinte comando executa operações de gravação sequenciais de 1 MiB em um dispositivo de blocos st1
anexado:
$
sudo fio--filename=/dev/
<device>
--direct=1 --rw=write
--randrepeat=0 --ioengine=libaio --bs=1024k --iodepth=8 --time_based=1 --runtime=180
--name=fio_direct_write_test
Algumas workloads executam uma combinação de leituras e gravações sequenciais para diferentes partes de dispositivo de blocos. Para comparar essa workload, recomendamos que você use trabalhos de fio separados, simultâneos, para leituras e gravações, e use a opção fio offset_increment
para focar em locais diferentes de dispositivo de blocos para cada trabalho.
Executar essa workload é um pouco mais complicado do que uma workload de gravação ou leitura sequenciais. Use um editor de texto para criar um arquivo de trabalho de fio, chamado de fio_rw_mix.cfg
neste exemplo, que contém o seguinte:
[global] clocksource=clock_gettime randrepeat=0 runtime=180 [sequential-write] bs=1M ioengine=libaio direct=1 iodepth=8 filename=/dev/
<device>
do_verify=0 rw=write rwmixread=0 rwmixwrite=100 [sequential-read] bs=1M ioengine=libaio direct=1 iodepth=8 filename=/dev/<device>
do_verify=0 rw=read rwmixread=100 rwmixwrite=0 offset=100g
Em seguida, execute o seguinte comando:
$
sudo fiofio_rw_mix.cfg
Para obter mais informações sobre como interpretar os resultados, consulte este tutorial: Inspeção de performance de E/S de disco com fio
Vários trabalhos de fio para E/S direta, mesmo que usando operações de leitura ou gravação sequenciais, podem resultar em uma throughput mais baixa do que o esperado para volumes st1
e sc1
. Recomendamos que você use um trabalho direto de E/S e use o parâmetro iodepth
para controlar o número de operações simultâneas de E/S.