Introdução
Nossa equipe para um projeto da web (ainda é um segredo) precisava de hospedagem, o que tornaria nosso serviço disponível para colaboração 24/7. Antes disso, utilizávamos hospedagem compartilhada diferente, mas essa opção de hospedagem não é adequada para nós, porque esses fornecedores raramente atualizam o software e, mesmo que haja uma opção entre as versões MySQL, PHP e Apache, geralmente existem várias versões desatualizadas e muito desatualizadas. E nem todo mundo tem ferramentas para trabalhar com os certificados Let's Encrypt, por exemplo. Mas recentemente decidimos prestar atenção em máquinas virtuais dedicadas. Por um lado, um pouco mais de manutenção recai sobre nossos ombros, mas, por outro lado, temos controle total sobre todo o software instalado.
Seleção das vítimas
Existem vários serviços diferentes para a seleção de hospedagem, selecionamos a configuração do servidor virtual com base nas considerações de que precisamos de 2 núcleos de CPU, 8 GB de RAM e pelo menos 50 GB SSD e recebemos a seguinte lista:
- boodet.online
- firstvds.ru
- fornex.com
- fozzy.com
- ipipe.ru
- ispserver.com
- profiterver.ru
- ruvds.com
- vdsnow.ru
Vamos conhecer melhor
boodet.online
Você pode comprar 10, 20, 60, 100, 250, 500, 1000 ou 2000 GB.
Bem, existem limites para cada valor de CPU e RAM. Por exemplo, para tirar proveito de 12 GB de RAM, não é possível solicitar menos de 6 núcleos de CPU, e esse é o próximo valor após 8 GB. Você pode solicitar VPS com até 48 núcleos e até 224 GB de RAM (Mínimo - 1 núcleo e 0,5 GB de RAM). Ao pagar por um ano, o custo do servidor por mês se transforma em 952 ₽.
Gostou: baixo preço
Não gostou: falta de flexibilidade de configuração completa.
Nuances: remover o servidor leva algum tempo. Talvez algumas das etapas sejam executadas manualmente. Ao devolver fundos, o hoster exige que você indique explicitamente os detalhes da fonte de pagamento. O único hoster com esses requisitos entre aqueles que conhecemos.
firstvds.ru
Aqui você pode selecionar o número necessário de núcleos de servidor virtual de 2 a 8 pcs., RAM em incrementos de 2 GB até 32 GB e disco em incrementos de 10 GB de 20 a 2000 GB. Não há desconto para pedidos superiores a um mês e custa 1549 ₽ por mês.
Gostei: configuração VDS personalizada, pagamento através do sistema de pagamento rápido usando um código QR.
Não gostei: excluir o servidor antes do final do período de cobrança não é fornecido, mas, como exceção, ele pode ser excluído através do suporte técnico.
fornex.com
Escolha apenas de configurações fixas. RUB 2711,76 por mês, se pago por um ano.
Não gostei: falta de configuração flexível.
Nuances: a função de exclusão simplesmente gera uma solicitação de suporte técnico.
fozzy.com
Não há configurador, existem tarifas prontas, contaremos com uma máquina virtual com 2 GB de RAM, 2 núcleos e 45 GB.
E adicione 6 GB a ele. O custo é de 1 939,00 ₽ por mês.
Não gostei: falta de um configurador normal.
ipipe.ru
Também aqui o VPS deve ser montado como construtor. NVMe –2 + 6 GB de RAM.
Recebemos 1 459,00 ₽ por mês.
Não gostei: falta de um configurador normal.
ispserver.com
Aqui, o configurador permite selecionar o número necessário de núcleos de 2 a 8 pcs, RAM em incrementos de 2 GB a 32 GB e disco em incrementos de 10 GB de 20 a 2000 GB.
Gostei: configuração customizada.
Não gostei: excluir o servidor antes do final do período de cobrança não é fornecido, mas, como exceção, ele pode ser excluído através do suporte técnico.
profiterver.ru
Há um configurador completo aqui, e a quantidade de RAM que solicitamos é o máximo que está disponível para pedido e o mínimo que você pode solicitar é de 1 GB. O núcleo pode ser encomendado de 1 a 8 peças. E o disco - de 20 a 100 GB. Ao pagar por um ano, o custo é de RUB 1.668,50 por mês
Gostei: configuração personalizada, pagamento através do sistema de pagamento rápido usando um código QR.
Eu não gostei: eles se recusaram a excluir o servidor e a reembolsar.
ruvds.com
Existe um configurador completo. Disponível de 1 a 16 núcleos, 0,5 a 16 GB de RAM e 10 a 600 GB de disco.
Mas escolhemos uma tarifa pronta, porque é mais barata - apenas 1333 ₽ por mês.
Gostei: configuração customizada.
Não gostei: a tarifa selecionada só pode ser comprada por exatamente três meses e você não pode estender o servidor antes de alguns dias antes do final do período de cobrança.
vdsnow.ru
Há um configurador completo aqui. Você pode escolher entre 1 a 8 núcleos, 1 a 32 GB de RAM e 10 a 150 GB de disco. 1320 ₽ mensalmente sem desconto ao pagar por um período maior.
Gostei: configuração flexível.
O objetivo da batalha
Selecionamos vários serviços e decidimos escolher o mais adequado, tanto em termos de preço quanto de desempenho. Esperar encontrar um serviço barato e produtivo é uma utopia, por isso tentaremos encontrar uma solução equilibrada.
Preparando-se para a batalha
Para não reinventar a roda e não perder muito tempo, decidimos usar um conjunto de testes de desempenho pronto - Phoromatic . No começo, havia uma idéia de executar algum tipo de banco de console (como o sysbench) via cron em um cronograma. Mas, depois de pesquisar um pouco, descobrimos uma opção muito interessante: www.phoronix-test-suite.com .
O Phoronix Test Suite (PTS) é um software livre e de código aberto para Linux e outros sistemas operacionais desenvolvidos por Michael Larabel e Matthew Tippett.
O conjunto de benchmarks da Phoronix foi endossado por sites como Linux.com, LinuxPlanet e Softpedia, que a consideraram "a melhor plataforma para teste de desempenho". O Phoronix Test Suite também é usado pelo hardware de Tom, ASELabs e outros sites de revisão.
Em essência, essa é uma enorme biblioteca de vários problemas de teste, com a ajuda da qual você pode avaliar a qualidade e a estabilidade da operação de uma máquina física inteira ou realizar um teste altamente especializado voltado para algo específico. Mas fomos especialmente atraídos pelo subsistema Phoromatic.
Phoromatic — - Phoronix Test Suite. (). Phoromatic .
O Phoromatic é iniciado em um servidor separado, após o qual as máquinas de teste são conectadas a ele. O processo é o mais simples possível, os desenvolvedores forneceram scripts prontos para instalação em seu repositório para sistemas Unix e Windows. Apenas precisamos garantir que haja dependências necessárias para o trabalho e executar o script de instalação, para que todo o trabalho seja realizado na interface da web do Phoromatic.
Depois de iniciar o Phoromatic, acesse a interface da web, onde será solicitado que você forneça as credenciais do administrador. Depois disso, a página principal do sistema será aberta:
Em geral, o Phoromatic é capaz de implantar independentemente os componentes necessários nas máquinas de teste. Você só precisa fornecer acesso SSH:
Isso pode ser útil se você tiver uma enorme frota de máquinas de teste. Nós seguimos um caminho diferente. O Phoronix Test Suite foi instalado em cada máquina de teste e usando um comando simples:
phoronix-test-suite phoromatic.connect my-domain.xyz:8855/1P81YS
eles estavam se juntando ao servidor Phoromatic. Em seguida, combinamos todos os sistemas em um grupo, o que tornou possível executar testes de forma síncrona em todas as máquinas.
Em seguida, procedemos à seleção dos testes necessários. Estabelecemos o seguinte conjunto:
System CPU\RAM:
>> Sysbench [pts/sysbench-1.0.0]
This is a benchmark of Sysbench with CPU and memory sub-test
>> Apache Benchmark [pts/apache-1.7.2]
This is a test of ab, which is the Apache benchmark program. This test profile measures how many requests per second a given system can sustain when carrying out 1,000,000 requests with 100 requests being carried out concurrently.
>> PHPBench [pts/phpbench-1.1.5]
PHPBench is a benchmark suite for PHP. It performs a large number of simple tests in order to bench various aspects of the PHP interpreter. PHPBench can be used to compare hardware, operating systems, PHP versions, PHP accelerators and caches, compiler options, etc. The number of iterations used is 1,000,000.
===
CPU:
>> Swet [pts/swet-1.0.0]
Swet is a synthetic CPU/RAM benchmark, includes multi-processor test cases.
>> OpenSSL [pts/openssl-1.11.0]
OpenSSL is an open-source toolkit that implements SSL (Secure Sockets Layer) and TLS (Transport Layer Security) protocols. This test measures the RSA 4096-bit performance of OpenSSL.
===
RAM:
>> pmbench [pts/pmbench-1.0.2]
Pmbench is a Linux paging and virtual memory benchmark. This test profile will report the average page latency of the system.
- Concurrent Worker Threads: 2 - Read-Write Ratio: 50%
>> Tinymembench [pts/tinymembench-1.0.2]
This benchmark tests the system memory (RAM) performance.
===
Network:
>> Loopback TCP Network Performance [pts/network-loopback-1.0.3]
This test measures the loopback network adapter performance using a micro-benchmark to measure the TCP performance.
===
Disc:
>> Flexible IO Tester [pts/fio-1.13.2]
Fio is an advanced disk benchmark that depends upon the kernel's AIO access library.
- Random Read - Engine: Linux AIO - Buffered: Yes - Direct: No - Block Size: 4KB - Disk Target: Default Test Directory
- Random Read - Engine: Linux AIO - Buffered: Yes - Direct: No - Block Size: 4MB - Disk Target: Default Test Directory
- Random Read - Engine: Linux AIO - Buffered: Yes - Direct: No - Block Size: 512KB - Disk Target: Default Test Directory
- Random Read - Engine: Linux AIO - Buffered: Yes - Direct: No - Block Size: 64KB - Disk Target: Default Test Directory
- Random Write - Engine: Linux AIO - Buffered: Yes - Direct: No - Block Size: 4KB - Disk Target: Default Test Directory
- Random Write - Engine: Linux AIO - Buffered: Yes - Direct: No - Block Size: 4MB - Disk Target: Default Test Directory
- Random Write - Engine: Linux AIO - Buffered: Yes - Direct: No - Block Size: 512KB - Disk Target: Default Test Directory
- Random Write - Engine: Linux AIO - Buffered: Yes - Direct: No - Block Size: 64KB - Disk Target: Default Test Directory
>> SQLite [pts/sqlite-2.1.0]
This is a simple benchmark of SQLite. At present this test profile just measures the time to perform a pre-defined number of insertions on an indexed database.
- Threads / Copies: 1
Esse conjunto pode parecer supérfluo, mas queríamos ter uma idéia do funcionamento de cada um dos componentes do sistema: disco, RAM, CPU, rede.
Agora você precisa criar a própria programação de acordo com a qual os testes serão executados:
Colocamos todos os testes que selecionamos lá:
Como resultado, obtivemos 4 cenários com o mesmo conjunto de testes. Os scripts eram executados às 04:00, 10:00, 14:00 e 19:00 todos os dias. Um início seqüencial de todos os testes selecionados foi iniciado e os resultados foram obtidos. Agora tudo o que restava era esperar. Após duas semanas, decidimos que bastava e desativamos os scripts.
Os resultados podem ser visualizados diretamente no navegador e até fazer algumas comparações entre os sites de teste. No entanto, com um volume tão grande, isso é muito inconveniente. Portanto, lançamos todos os resultados no CSV e analisamos os resultados por nós mesmos. Anexada a este artigo, está a tabela resultante, para que você possa analisar os resultados você mesmo.
Batalha
Após o upload dos resultados dos testes para cada servidor, os combinamos em várias planilhas no LibreOffice Calc (alternativa ao MS Excel). Para cada hoster - uma planilha separada. A seguir, a média aritmética foi obtida para todos os resultados obtidos em cada teste. Dessa forma, obtivemos resultados médios sem referência ao tempo, o que nos permitirá avaliar mais adequadamente o desempenho das máquinas, sem levar em consideração o influxo temporário de carga criado pelos servidores de outros clientes.
Se desejar, você pode criar gráficos de forma independente para cada teste, para cada hoster e entender quanto o desempenho difere à uma hora da terça-feira das 3 noites do sábado.
Os resultados médios obtidos foram resumidos em uma folha com o nome não complicado "Média aritmética". Agora você pode criar diagramas que mostram claramente a diferença entre os hosters para cada teste. Na planilha “Resultado final”, você pode ver apenas os dados recebidos de uma forma conveniente para a percepção humana. Cada coluna contém a média aritmética real e a mesma, mas em termos de 1000 ₽. Isso nos permitirá entender qual dos hosters é melhor em termos de relação preço-desempenho. Nos gráficos, você pode ver duas colunas:
- Azul é o valor real
- Vermelho - em termos de 1000 rublos.
O deslocamento total incluiu valores ajustados por valor. Observe também que quanto mais, melhor não em todos os testes, isso é indicado na coluna "B":
- HIB — Higher Is Better More Is Better ( , )
- LIB — Low Is Better Fewer Is Better ( — )
Aqui estão os resultados do benchmark: teste de
desempenho do processador sysbench
teste de desempenho da memória sysbench Teste de desempenho do
disco flexível IOPS
Teste de desempenho do disco IOPS flexível Teste de desempenho do disco flexível MB / s Teste de desempenho em disco MB / s
Apache Benchmark Página estática da web Servindo
teste de desempenho do servidor Web PHP Benchmark Teste de
desempenho do processador Swet
Teste de desempenho do controlador de rede Transferência de dados via loopback Teste de
desempenho de memória Tinymembench
pmbench
Teste de desempenho do disco Teste de desempenho do banco de dados SQLite Teste de desempenho do banco de dados SQLite
Teste de desempenho do processador OpenSSL
Portanto, obtivemos diagramas mostrando o valor médio, e não o prazo, de cada teste separadamente, bem como os mesmos valores, mas ajustados pelo custo da configuração testada. Graças a eles, é relativamente fácil entender os pontos fortes e fracos dos hosters.
Determinando o vencedor
Vamos passar para os resultados. Para determinar um favorito para nós mesmos, atribuímos um determinado peso a cada lugar ocupado em um teste específico. Quanto mais perto do campeonato, melhor. Assim, o hoster recebe 9 pontos em primeiro lugar, 1 em último (e vice-versa, se estivermos falando sobre resultados LIB). Em seguida, simplesmente resumimos as pontuações obtidas para cada teste e construímos o gráfico final.
Ruvds.com e ipipe.ru têm os melhores resultados, no entanto, em termos de relação preço-desempenho, ruvds.com parece mais atraente.
Conclusão
As hostes entraram em conflito de verdade - tínhamos configurações quase idênticas da mesma faixa de preço, mas, como dissemos no início, agora tudo decide. Ainda conseguimos identificar o vencedor, mas antes de anunciar, há algumas coisas que gostaria de chamar sua atenção:
- não copie cegamente nossa escolha - você pode ter outros objetivos, tarefas, introdutórias e projetos; você pode economizar dinheiro e encontrar a melhor solução para si mesmo;
- não economize nas partidas - a hospedagem barata pode ser absolutamente perigosa e prejudicar não apenas o seu projeto, mas todo o negócio;
- reserve um tempo para selecionar e analisar a solução.
Bem, em termos de relação qualidade / preço, fomos surpreendidos pelo Ruvds (especificamente, a tarifa "Turbo") - não apenas existem excelentes resultados de desempenho, mas também um preço adequado. Portanto, os caras não blogam aqui por nada - provavelmente não têm vergonha de olhar nos olhos do cluster de TI da Habr. Bem, você - pense por si mesmo, decida por si mesmo ... E, o mais importante, não perca!
Você pode baixar a tabela original com os resultados aqui: mega