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
postgresql10-server
pacotes postgresql10-server
e postgresql10
foram instalados em um sistema operacional limpo- O banco de dados para o benchmark foi inicializado com os parâmetros:
pgbench -i -s 100
- Três vezes o benchmark foi executado com parâmetros:
pgbench -c 10 -T 60
- 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. - 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):
Recurso | Tps | Preço |
---|
AWS EC2 m5.2xlarge | 2822 | 343 |
AWS EC2 m5d.2xlarge | 2752 | 403 |
AWS EC2 t3.2xlarge | 2636 | 290. |
AWS EC2 t2.2xlarge | 2259 | 320 |
AWS EC2 m4.2xlarge | 2187 | 358 |
Selectel VPC (SSD rápido) | 1524 | 186 |
Instância de computação na nuvem Yandex | 1309 | 155 |
Banco de dados gerenciado na nuvem Yandex | 1226 | 234 |
AWS RDS db.m4.2xlarge (3000 IOPS) | 1200 | 1007 |
AWS RDS db.t2.2xlarge (3000 IOPS) | 1127 | 862 |
AWS RDS db.t2.2xlarge (1000 IOPS) | 970 | 625 |
AWS RDS db.m4.2xlarge (1000 IOPS) | 885 | 769 |
Selectel VPC (SSD universal) | 247 | 164 |
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 VPCResultados do teste em forma de gráfico:

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.