paint-brush
Comparando MinIO com WARP e Speedtestby@minio
12,070
12,070

Comparando MinIO com WARP e Speedtest

MinIO8m2023/11/08
Read on Terminal Reader

Quando o desempenho é crítico, você precisa saber que está alcançando o melhor desempenho possível.
featured image - Comparando MinIO com WARP e Speedtest
MinIO HackerNoon profile picture
0-item
1-item


Os clientes trazem MinIO para seus ambientes para obter armazenamento de objetos de alto desempenho compatível com S3 que pode ser executado em qualquer hardware físico ou virtual e Kubernetes. Nossos benchmarks publicados demonstram que o MinIO é o armazenamento de objetos mais rápido disponível, mas só pode ser executado na velocidade do hardware e da rede que você fornece. O desempenho é um grande foco da nossa equipe, por isso fazemos tudo o que podemos para ajudar os administradores a aproveitar ao máximo o MinIO. Para verificar se a infraestrutura subjacente pode oferecer suporte ideal ao MinIO, fornecemos dois métodos para avaliar o desempenho e identificar possíveis gargalos: WARP e Speedtest.


Aplicativos modernos como IA/ML, análises avançadas e bancos de dados exigem armazenamento de objetos de alto desempenho. A combinação de escalabilidade e alto desempenho do MinIO coloca todas as cargas de trabalho, não importa quão exigentes sejam, ao seu alcance. Quando o desempenho é crítico, você precisa saber que está alcançando o melhor desempenho possível. Os resultados do WARP e do Speedtest podem ser usados para monitorar o desempenho ao longo do tempo e identificar proativamente possíveis problemas antes que se tornem problemas sérios.


WARP é um software de avaliação de desempenho S3 de código aberto e completo, desenvolvido para conduzir testes entre clientes WARP e hosts de armazenamento de objetos. WARP mede o desempenho GET e PUT de vários clientes em um cluster MinIO. O WARP possui muitas opções, configuradas por linha de comando ou variáveis ambientais, permitindo criar testes alinhados às suas cargas de trabalho. Lembre-se: é absolutamente crítico avaliar o desempenho de maneira significativa e testar usando dados e uma carga de trabalho que represente as condições reais nas quais seu armazenamento de objetos opera.


Por outro lado, o Speedtest é um teste de desempenho automatizado fácil de usar que fornece uma experiência simplificada e resultados concisos. Apresentamos o Speedtest em novembro para fornecer aos administradores do MinIO a capacidade de executar uma avaliação de desempenho distribuída de seus clusters MinIO com um único comando. O Speedtest executa PUTS e, em seguida, GETS, aumentando gradativamente a carga para identificar o rendimento agregado máximo. Os testes podem levar de alguns segundos a vários minutos para serem executados, dependendo do cluster MinIO.


Existem algumas diferenças importantes entre WARP e Speedtest. WARP é uma ferramenta completa que testa o desempenho do seu cluster MinIO por meio de operações conduzidas por clientes WARP. As máquinas clientes estão conduzindo PUTS e GETS de objetos pela rede para seu cluster MinIO distribuído. Isso torna o WARP um excelente mecanismo para testar o desempenho cliente-servidor previsto. Por outro lado, o Speedtest é executado em instâncias MinIO para conduzir PUTS e GETS de objetos para outras instâncias MinIO no mesmo cluster. Dessa forma, o Speedtest informa do que o lado do servidor da equação de desempenho é capaz.


WARP contém praticamente todos os testes (GET, PUT, DELETE, LIST, STAT, RETENTION) que você pode querer executar no armazenamento de objetos, e as execuções de testes podem incluir uma combinação personalizada de tamanhos de objetos para corresponder às suas cargas de trabalho. O Speedtest executa parâmetros de teste definidos para identificar rapidamente o rendimento máximo. Embora o WARP exija software adicional, o Speedtest está incluído no MinIO e pode ser executado a partir da interface mc ou do console MinIO. Para ajudar na solução de problemas, os clientes podem compartilhar os resultados do Speedtest com os engenheiros do MinIO com um único clique.

WARP: uma ferramenta completa de benchmarking de armazenamento de objetos

Primeiro, vamos dar uma olhada no WARP. WARP é uma ferramenta que permite avaliar minuciosamente o desempenho do MinIO, ou de qualquer armazenamento de objetos compatível com S3, sob uma variedade de condições. Por padrão, o WARP realizará um teste misto de leitura e gravação em todos os discos utilizados pelo MinIO rodando em modo distribuído.


Fluxo de distorção


Para esta demonstração. executaremos o WARP para testar o MinIO em execução na AWS em modo distribuído. Temos feito isso com bastante frequência ultimamente, para que possamos aconselhar clientes atuais e potenciais sobre as configurações de melhor desempenho que encontramos, testando-as.


WARP está localizado em um repositório GitHub , onde você também encontrará documentação detalhada.


Começaremos implantando o MinIO em modo distribuído . Você pode baixar o MinIO e instalá-lo em seu ambiente sozinho ou pode seguir este tutorial para instalar o MinIO no AWS EC2 .


De qualquer forma, começaremos com uma implantação distribuída do MinIO:


Arquitetura MinIO


Assim que o MinIO estiver instalado e funcionando, você poderá medir o desempenho com o WARP, então vamos começar.

Etapa 0: Crie 4 instâncias (também conhecidas como nós) com Distributed MinIO.

Para todas as UI da Amazon ou AWS CLI, siga as etapas da postagem anterior do blog para implantar instâncias, mas não configure armazenamento adicional. As instâncias que executam o WARP devem ser poderosas o suficiente para gerar objetos rapidamente e medir operações PUT e GET, mas não requerem o volume de armazenamento necessário para um nó MinIO.


Criando instâncias

Etapa 2: Adicione hosts no arquivo /etc/hosts nos clientes WARP.

  1. Obtenha os endereços IP das instâncias MinIO
  2. Obtenha os endereços IP dos clientes WARP
  3. Adicione esses endereços no arquivo /etc/hosts:


 172.31.23.237 host1 172.31.26.78 host2 172.31.26.90 host3 172.31.19.110 host4 172.31.27.18 warp1 172.31.23.81 warp2 172.31.19.28 warp3 172.31.19.7 warp4


Observe que recomendamos listar e trabalhar com hosts em ordem consecutiva. Isso simplifica o lançamento do WARP a partir da linha de comando e facilita a localização de cada cliente WARP e host MinIO.

Etapa 3: Instale o WARP nos clientes e execute-o.

 [root@ip-172-31-19-7 ec2-user]# wget https://github.com/minio/warp/releases/download/v0.5.5/warp_0.5.5_Linux_arm64.tar.gz 2022-02-08 20:06:04 (66.3 MB/s) - 'warp_0.5.5_Linux_arm64.tar.gz' saved [3943887/3943887] [root@ip-172-31-19-7 ec2-user]# tar -xzvf warp_0.5.5_Linux_arm64.tar.gz LICENSE README.md warp_logo.png warp [root@ip-172-31-19-7 ec2-user]# ./warp client warp: Listening on :7761


Observe que cada cliente WARP está escutando na porta 7761

Etapa 4: execute o WARP e lance um benchmark misto.

 [root@ip-172-31-27-18 ec2-user]# WARP_ACCESS_KEY=minioadmin WARP_SECRET_KEY=minioadmin ./warp mixed --warp-client warp{1...4}:7761 --host host{1...4}:9000 --duration 120s --obj.size 64M --concurrent 64 warp: Benchmark data written to "warp-remote-2022-02-08[201339]-qymu.csv.zst" Mixed operations. Operation: DELETE, 10%, Concurrency: 256, Ran 1m54s. * Throughput: 39.90 obj/s Operation: GET, 45%, Concurrency: 256, Ran 1m54s. * Throughput: 10903.28 MiB/s, 178.64 obj/s Operation: PUT, 15%, Concurrency: 256, Ran 1m54s. * Throughput: 3628.27 MiB/s, 59.45 obj/s Operation: STAT, 30%, Concurrency: 256, Ran 1m54s. * Throughput: 119.98 obj/s Cluster Total: 14501.38 MiB/s, 397.44 obj/s over 1m55s. warp: Cleanup done. [root@ip-172-31-27-18 ec2-user]#


Você concluiu um teste básico de desempenho em modo misto usando WARP. Embora tenhamos usado um teste de modo misto para demonstrar WARP, você normalmente obterá melhores resultados que estão mais alinhados ao uso no mundo real, dividindo operações individuais (GET, PUT, LIST) em suas próprias execuções de teste, em vez de executar um teste misto. teste de modo.


Recomendamos que você consulte a documentação para saber como executar mais cenários de teste. Por exemplo, você pode ativar o TLS e a criptografia no lado do servidor para medir o impacto no seu ambiente. Você pode sobrecarregar ainda mais a infraestrutura aumentando o número de testes simultâneos. Você pode usar uma combinação aleatória de tamanhos de objetos ou especificar um tamanho de objeto que corresponda ao seu ambiente e carga de trabalho atuais. Você pode configurar os testes para serem executados por um período de tempo definido ou para serem encerrados automaticamente, como fizemos acima.


Os resultados WARP são mostrados na tela e salvos em um arquivo CSV local compactado usando zstandard.

Speedtest para uma avaliação de desempenho rápida e fácil

Caso você não queira a flexibilidade total do WARP, criamos uma maneira rápida e fácil de medir o desempenho do MinIO usando o Speedtest. O Speedtest é mais comumente executado no modo de ajuste automático, aumentando gradativamente a carga para identificar o rendimento agregado máximo.


Você pode usar mc para executar o Speedtest:

 $ mc support perf object <alias>


 [root@ip-172-31-77-115 ec2-user]# ./mc support perf object myminio THROUGHPUT IOPS PUT 2.4 GiB/s 38 objs/s GET 4.6 GiB/s 73 objs/s Speedtest: MinIO 2022-02-01T18:00:14Z, 4 servers, 16 drives, 64 MiB objects, 72 threads


Ou você pode executar o Speedtest no MinIO Console, a GUI baseada em navegador para configurar, gerenciar e gerar relatórios sobre clusters MinIO. Basta navegar até o menu Suporte, clicar em Desempenho e, a seguir, clicar no botão Iniciar.


Teste de performance


O teste de desempenho será executado. Quando estiver concluído, o desempenho agregado de GET e PUT, bem como o desempenho de nós individuais, será exibido.


Para obter mais detalhes e exemplos do Speedtest, consulte este tutorial .

Velocidade Warp à frente!

Comece baixando o MinIO hoje mesmo. Junte-se à nossa comunidade Slack e troque ideias com outros usuários do MinIO. Se você tiver alguma dúvida específica sobre o uso do WARP, entre em contato conosco em nosso canal Slack (Matt Sarrel e Cesar Celis) ou envie-nos um e-mail para [email protected].


Também publicado aqui .