Introducción
Nuestro equipo para un proyecto web (todavía es un secreto) necesitaba alojamiento, lo que haría que nuestro servicio estuviera disponible para colaboración 24/7. Antes de eso, utilizamos diferentes alojamientos compartidos, pero esta opción de alojamiento no es adecuada para nosotros, ya que estos proveedores rara vez actualizan el software, e incluso si hay una opción de versiones de MySQL, PHP y Apache, generalmente hay varias versiones desactualizadas y muy desactualizadas. Y no todos tienen herramientas para trabajar con los certificados Let's Encrypt, por ejemplo. Pero recientemente decidimos prestar atención a las máquinas virtuales dedicadas. Por un lado, un poco más de mantenimiento recae sobre nuestros hombros, pero por otro lado, tenemos control total sobre todo el software instalado.
Selección de víctimas
Hay varios servicios diferentes para la selección de hosting, seleccionamos la configuración del servidor virtual en base a las consideraciones de que necesitamos 2 núcleos de CPU, 8 GB de RAM y al menos 50 GB SSD y recibimos la siguiente lista:
- boodet.online
- firstvds.ru
- fornex.com
- fozzy.com
- ipipe.ru
- ispserver.com
- profiterver.ru
- ruvds.com
- vdsnow.ru
Conozcamos mejor
boodet.online
Puede comprar 10, 20, 60, 100, 250, 500, 1000 o 2000 GB.
Bueno, hay límites para cada valor de CPU y RAM. Por ejemplo, para aprovechar los 12 GB de RAM, no se pueden pedir menos de 6 núcleos de CPU, y este es el siguiente valor después de 8 GB. Puede solicitar VPS con hasta 48 núcleos y hasta 224 GB de RAM (Mínimo - 1 núcleo y 0.5 GB de RAM). Al pagar durante un año, el costo del servidor por mes se convierte en 952 ₽.
Me gustó: precio bajo
No me gustó: falta de flexibilidad de configuración completa.
Matices: eliminar el servidor lleva algo de tiempo. Quizás algunos de los pasos se realizan manualmente. Al devolver fondos, el proveedor de servicios de alojamiento requiere que indique explícitamente los detalles de la fuente de pago. El único proveedor de alojamiento con tales requisitos entre los que conocimos.
firstvds.ru
Aquí puede seleccionar el número requerido de núcleos de servidores virtuales de 2 a 8 unidades, RAM en incrementos de 2 GB hasta 32 GB y disco en incrementos de 10 GB de 20 a 2000 GB. No hay descuento al hacer un pedido de más de un mes y es de 1549 ₽ por mes.
Me gustó: configuración de VDS personalizada, pago a través del sistema de pago rápido utilizando un código QR.
No me gustó: no se proporciona la eliminación del servidor antes del final del período de facturación, pero como excepción, se puede eliminar a través del soporte técnico.
fornex.com
Elección de solo configuraciones fijas. RUB 2711.76 por mes si se paga por un año.
No me gusta: falta de configuración flexible.
Matices: la función de eliminación simplemente genera una solicitud de soporte técnico.
fozzy.com
No hay configurador, hay tarifas listas para usar, confiaremos en una máquina virtual con 2 GB de RAM, 2 núcleos, 45 GB.
Y agregue 6 GB. El costo es de 1 939,00 ₽ por mes.
No me gusta: falta de un configurador normal.
ipipe.ru
Aquí también, VPS debe ensamblarse como un constructor. NVMe –2 + 6 GB de RAM.
Recibimos 1 459,00 ₽ por mes.
No me gusta: falta de un configurador normal.
ispserver.com
Aquí el configurador le permite seleccionar el número requerido de núcleos de 2 a 8 piezas, RAM en incrementos de 2 GB a 32 GB y disco en incrementos de 10 GB de 20 a 2000 GB.
Me gustó: configuración personalizada.
No me gustó: no se proporciona la eliminación del servidor antes del final del período de facturación, pero como excepción, se puede eliminar a través del soporte técnico.
profiterver.ru
Aquí hay un configurador completo, y la cantidad de RAM que pedimos es la máxima disponible para pedido, y el mínimo que puede pedir es de 1 GB. El núcleo se puede pedir de 1 a 8 piezas, y el disco, de 20 a 100 GB. Al pagar por un año, el costo es de RUB 1,668.50 por mes
Me gustó: configuración personalizada, pago a través del sistema de pago rápido utilizando un código QR.
No me gustó: se negaron a eliminar el servidor y reembolsar.
ruvds.com
Hay un configurador completo. Disponible de 1 a 16 núcleos, de 0,5 a 16 GB de RAM y de 10 a 600 GB de disco.
Pero elegimos una tarifa preparada, porque es más barata, solo 1333 ₽ por mes.
Me gustó: configuración personalizada.
No me gustó: la tarifa seleccionada solo se puede comprar durante exactamente tres meses, y no puede extender el servidor antes de unos días antes del final del período de facturación.
vdsnow.ru
Hay un configurador completo aquí. Puede elegir de 1 a 8 núcleos, de 1 a 32 GB de RAM y de 10 a 150 GB de disco. 1320 ₽ mensuales sin descuento al pagar por un período más largo.
Me gustó: configuración flexible.
El proposito de la batalla
Hemos seleccionado varios servicios y hemos decidido elegir el más adecuado, tanto en términos de precio como de rendimiento. Esperar encontrar un servicio que sea barato y productivo es una utopía, por lo que intentaremos encontrar una solución equilibrada.
Preparándose para la batalla
Para no reinventar la rueda y no perder mucho tiempo, decidimos usar un conjunto de pruebas de rendimiento ya preparado: Phoromatic . Al principio surgió la idea de ejecutar algún tipo de banco de consola (como sysbench) a través de cron en un horario. Pero después de buscar un poco en Google, encontramos una opción muy interesante: www.phoronix-test-suite.com .
Phoronix Test Suite (PTS) es un software gratuito y de código abierto para Linux y otros sistemas operativos desarrollados por Michael Larabel y Matthew Tippett.
El conjunto de pruebas de referencia de Phoronix ha sido respaldado por sitios como Linux.com, LinuxPlanet y Softpedia, y lo llamó "la mejor plataforma para las pruebas de rendimiento". Phoronix Test Suite también es utilizado por Tom's Hardware, ASELabs y otros sitios de revisión.
En esencia, esta es una gran biblioteca de varios problemas de prueba, con la ayuda de la cual puede evaluar la calidad y la estabilidad de la operación de una máquina física completa, o realizar una prueba altamente especializada dirigida a algo específico. Pero nos atrajo especialmente el subsistema Phoromatic.
Phoromatic — - Phoronix Test Suite. (). Phoromatic .
Phoromatic se inicia en un servidor separado, después del cual se conectan las máquinas de prueba. El proceso es lo más simple posible, los desarrolladores han proporcionado scripts listos para instalar en su repositorio para sistemas Unix y Windows. Solo tenemos que asegurarnos de que haya dependencias necesarias para el trabajo y ejecutar el script de instalación, luego todo el trabajo se llevará a cabo en la interfaz web de Phoromatic.
Después de iniciar Phoromatic, vaya a la interfaz web, donde se nos pedirá que proporcionemos las credenciales del administrador. Después de eso, se abrirá la página principal del sistema:
En general, Phoromatic puede implementar independientemente los componentes necesarios en máquinas de prueba. Solo necesita proporcionar acceso SSH:
Esto puede ser útil si tiene una gran flota de máquinas de prueba. Tomamos un camino diferente. Phoronix Test Suite se instaló en cada máquina de prueba y utiliza un comando simple:
phoronix-test-suite phoromatic.connect my-domain.xyz:8855/1P81YS
se estaban uniendo al servidor Phoromatic. Luego, combinamos todos los sistemas en un solo grupo, lo que hizo posible ejecutar pruebas sincrónicamente en todas las máquinas.
Luego procedemos a la selección de las pruebas requeridas. Nos decidimos por el siguiente 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
Tal conjunto puede parecer superfluo, pero queríamos tener una idea del funcionamiento de cada uno de los componentes del sistema: disco, RAM, procesador central, red.
Ahora necesita crear el programa según el cual se ejecutarán las pruebas:
Ponemos todas las pruebas que seleccionamos allí:
Como resultado, obtuvimos 4 escenarios con el mismo conjunto de pruebas. Los guiones se ejecutaban a las 04:00, 10:00, 14:00 y 19:00 todos los días. Se inició un inicio secuencial de todas las pruebas seleccionadas y se obtuvieron los resultados. Ahora todo lo que quedaba era esperar. Después de 2 semanas, decidimos que era suficiente y desactivamos los guiones.
Los resultados se pueden ver directamente en el navegador e incluso hacer algunas comparaciones entre los sitios de prueba. Sin embargo, con un volumen tan grande, esto es muy inconveniente. Por lo tanto, volcamos todos los resultados en CSV y los analizamos nosotros mismos. Se adjunta a este artículo la tabla resultante para que pueda analizar los resultados usted mismo.
Batalla
Después de cargar los resultados de la prueba para cada servidor, los combinamos en varias hojas en LibreOffice Calc (alternativa a MS Excel) Para cada host: una hoja separada. A continuación, se tomó la media aritmética para todos los resultados obtenidos en cada prueba. Por lo tanto, hemos obtenido resultados promediados sin referencia al tiempo, lo que nos permitirá evaluar de manera más adecuada el rendimiento de las máquinas, sin tener en cuenta la afluencia temporal de carga creada por los servidores de otros clientes.
Si lo desea, puede crear gráficos de forma independiente para cada prueba, para cada proveedor de alojamiento y comprender cuánto difiere el rendimiento a la una del martes de 3 noches el sábado.
Los resultados promedio obtenidos se resumieron en una hoja con el nombre sin complicaciones "media aritmética". Ahora puede crear diagramas que muestren claramente la diferencia entre los anfitriones para cada prueba. En la hoja "Resultado final", puede ver los datos recibidos en una forma conveniente para la percepción humana. Cada columna contiene la media aritmética real y la misma, pero en términos de 1000 ₽. Esto nos permitirá comprender cuál de los alojamientos es mejor en términos de relación precio-rendimiento. En los gráficos, puede ver dos columnas:
- Azul es el valor real
- Rojo : en términos de 1000 rublos.
El desplazamiento total incluyó valores ajustados por valor. También tenga en cuenta que más es mejor no en todas las pruebas, esto se indica en la columna "B":
- HIB — Higher Is Better More Is Better ( , )
- LIB — Low Is Better Fewer Is Better ( — )
Estos son los resultados de la prueba: prueba de
rendimiento del procesador sysbench
prueba de rendimiento de memoria sysbench
Prueba de E
/ S flexible Prueba de velocidad de disco IOPS Prueba de E / S flexible Prueba de velocidad de disco MB / s
Apache Benchmark Página web estática
Prueba de rendimiento del servidor web Prueba de rendimiento del servidor web PHP Benchmark Prueba de
rendimiento del procesador Swet
Prueba de estado del controlador de red Transferencia de datos mediante bucle invertido Prueba de
rendimiento de memoria
Tinymembench Prueba de rendimiento de disco pmbench
Prueba de rendimiento de base de datos SQLite
Prueba de rendimiento de procesador OpenSSL
Entonces, obtuvimos diagramas que muestran el valor promedio, no limitado en el tiempo para cada prueba por separado, así como los mismos valores, pero ajustados por el costo de la configuración probada. Gracias a ellos, es relativamente fácil comprender las fortalezas y debilidades de los hosters.
Determinando el ganador
Pasemos a los resultados. Para determinar un favorito para nosotros, asignamos un cierto peso a cada lugar ocupado en una prueba en particular. Cuanto más cerca del campeonato, mejor. Por lo tanto, el proveedor recibe 9 puntos por el primer lugar, 1 por el último (y viceversa, si estamos hablando de resultados de LIB). Luego, simplemente resumimos los puntajes obtenidos para cada prueba y construimos la tabla final.
Ruvds.com e ipipe.ru tienen los mejores resultados, sin embargo, en términos de relación precio-rendimiento, ruvds.com parece más atractivo.
Conclusión
Los alojamientos se enfrentaron en serio: teníamos configuraciones casi idénticas del mismo rango de precios, pero, como dijimos al principio, ahora cada pequeña cosa decide. Aún logramos identificar al ganador, pero antes de anunciarlo, hay algunas cosas sobre las que me gustaría llamar su atención:
- no copie ciegamente nuestra elección: puede tener otros objetivos, tareas, presentaciones y proyectos; puede ahorrar dinero y encontrar la mejor solución para usted;
- no escatime en partidos: el alojamiento barato puede ser francamente peligroso y dañar no solo su proyecto, sino todo el negocio;
- Tómese el tiempo para seleccionar y analizar la solución.
Bueno, en términos de relación calidad-precio, nos sorprendió Ruvds (específicamente, la tarifa "Turbo"): no solo hay resultados de rendimiento sobresalientes, sino también un precio adecuado. Entonces, los chicos no escriben aquí por nada, probablemente no se avergüenzan de mirar a los ojos del clúster Habr IT. Bueno, tú ... piensa por ti mismo, decide por ti mismo ... Y, lo más importante, ¡no pierdas!
Puede descargar la tabla original con los resultados aquí: mega