Análise de desempenho do PostgreSQL 10.5 nos mais recentes serviços em nuvem Yandex.Cloud

Outro dia, a Yandex abriu o acesso de usuários beta ao seu novo serviço - Yandex . Aconteceu que este evento coincidiu com a necessidade de escolher uma plataforma em nuvem para um de nossos projetos internos, e decidi testar imediatamente o desempenho das soluções Yandex.

Para o teste, peguei o PostgreSQL e o bom e velho pgbench. A escolha recaiu no DBMS porque era interessante testar e comparar o desempenho não apenas de máquinas virtuais, mas também de serviços de banco de dados gerenciados.

Isenção de responsabilidade: o autor não é um administrador profissional, nem um DBA, nem um especialista na personalização de soluções em nuvem. Os testes foram realizados exclusivamente para fins pessoais e não pretendem ser objetivos; portanto, leve o artigo "como está". Não haverá análises aprofundadas, mas haverá uma comparação expressa com o Selectel VPC (em diferentes discos) e várias configurações do AWS EC2 / RDS em termos de desempenho e custo das soluções. Talvez isso economize um pouco de tempo para alguém.

Detalhes Yandex.Cloud vs Selectel VPC vs AWS sob cat.

A estrutura dos serviços Yandex.Cloud


A estrutura dos recursos Yandex.Cloud é comum para esses serviços:

Cotas de recursos (global)
Catálogo (projeto)

- Computar em nuvem (máquinas virtuais e unidades)
- Bancos de dados gerenciados (clusters de banco de dados, você pode executar os bancos de dados Clickhouse, MongoDB e PostgreSQL)
- Armazenamento de objetos (armazenamento em nuvem)
- Nuvem virtual privada (redes em nuvem)
- API

Não vejo sentido em descrever a interface em detalhes, principalmente porque a documentação é de domínio público e muito está clara.

Comparar configurações


Os seguintes recursos foram alocados para todas as instâncias virtuais no teste:

vCPU : 8 núcleos
RAM : 32 Gb
Disco : SSD (classe específica - consulte instâncias de teste).
SO : mínimo do CentOS 7

Para serviços de banco de dados gerenciados, foi solicitada a configuração mais próxima possível (Yandex e AWS apenas têm configurações com 8CPU / 32RAM).

A versão testada do Postgres é 10.5. Ele foi postgresql10-server em máquinas virtuais a partir do pacote postgresql10-server e, em clusters gerenciados, esta versão foi selecionada na lista.

Metodologia de teste


  1. postgresql10-server pacotes postgresql10-server e postgresql10 foram instalados em um sistema operacional limpo
  2. O banco de dados para o benchmark foi inicializado com os parâmetros: pgbench -i -s 100
  3. Três vezes o benchmark foi executado com parâmetros: pgbench -c 10 -T 60
  4. O utilitário pgbench foi iniciado na mesma máquina virtual em que o DBMS foi instalado e, para clusters gerenciados, em uma máquina virtual na mesma nuvem.
  5. O melhor resultado dos três foi inserido na tabela de resultados.

Resultados do teste


Todos os resultados do teste expresso em uma tabela (gráficos abaixo):
RecursoTpsPreço
AWS EC2 m5.2xlarge2822343
AWS EC2 m5d.2xlarge2752403
AWS EC2 t3.2xlarge2636290.
AWS EC2 t2.2xlarge2259320
AWS EC2 m4.2xlarge2187358
Selectel VPC (SSD rápido)1524186
Instância de computação na nuvem Yandex1309155
Banco de dados gerenciado na nuvem Yandex1226234
AWS RDS db.m4.2xlarge (3000 IOPS)12001007
AWS RDS db.t2.2xlarge (3000 IOPS)1127862
AWS RDS db.t2.2xlarge (1000 IOPS)970625
AWS RDS db.m4.2xlarge (1000 IOPS)885769
Selectel VPC (SSD universal)247164

A coluna Preço mostra o preço estimado da solução testada por mês em dólares americanos, incluindo armazenamento a 100 GB. Para o Amazon RDS, cobrado por hora, o custo de uma hora foi multiplicado por 720. Os preços para o cálculo foram obtidos nas seguintes fontes:

- para o banco de dados gerenciado Yandex Cloud
- para instância de computação em nuvem Yandex
- para Instância Selectel VPC

Resultados do teste em forma de gráfico:

imagem

Conclusões


As conclusões, em geral, são bastante óbvias: é melhor não usar o SSD Universal da Selectel para hospedar um DBMS :)

Mas, falando sério, foi interessante comparar principalmente Selectel e Yandex. Como se viu, ambas as soluções vão quase frente a frente em termos de desempenho e custo. Além disso, o custo surpreendeu agradavelmente: os preços das configurações testadas eram bastante acessíveis.

É esperado que seja mais caro usar uma configuração semelhante na nuvem da AWS (embora eu esperasse uma diferença maior de preço), mas nenhum dos fornecedores russos conseguiu acompanhar o AWS EC2 em termos de desempenho. A exceção é o RDS que eu não entendo, que nem mesmo a adição de IOPS provisionado ajuda - ainda funciona devagar, mas custa muito, muito caro.

Apenas algumas palavras sobre o Yandex: em geral, eu esperava a aparência de um serviço deles por um longo tempo, era óbvio que isso era apenas uma questão de tempo. Ainda é evidente que está úmido (espero que isso se aplique apenas ao focinho da web, e não à infraestrutura como um todo), porque ainda existem muitos bugs e falhas no interior. Eu tive que conversar de perto com eles. suporte para entender se isso é um bug ou algo que eu não entendo. Mas, tenho certeza, tudo isso será rapidamente depurado e outra alternativa válida aparecerá no mercado russo de IaaS.

Source: https://habr.com/ru/post/pt428151/


All Articles