Batalla de servidores WEB. Parte 1: HTTP fóra de contacto:

Neste artigo, probaremos a enxeñaría inversa, por así dicilo. Meteremos mans nas entrañas de cada servidor web, explotándoos de xeitos que ninguén máis aproveitaría xamais.

Esta proba é unha medición dun cabalo esférico no baleiro, nada máis que os datos que se obtiveron, e agora non sabemos que facer con eles.

Batalla de servidores WEB. Parte 1: HTTP fóra de contacto:

Metodoloxía

O sistema operativo para Nginx e Apache é Ubuntu 18.04 LTS, para IIS Windows Server Core 2019. Todos os sistemas operativos recibiron as últimas actualizacións o 4 de decembro de 2019, antes das probas.

As probas realizáronse exclusivamente a través de HTTP. Cada servidor web executou a mesma páxina, un modelo de Jekyll gratuíto de Codrops. LigazónA compresión Gzip foi desactivada en todos os servidores web.

A proba de rendemento realizouse con ferramentas Httpd cos seguintes argumentos:

ab -n 50000 -c 500 http://192.168.76.204:80/

Os servidores estaban limitados ao 10, 5 e 1 por cento do núcleo en 8, 4 e 1 núcleo. O banco de probas foi un computador con 9900K a 5400 MHz, o que significa que un servidor cun límite do 10 % recibe aproximadamente 540 MHz por núcleo.

A proba TTFB realizouse durante o primeiro arranque do servidor e mediuse con DevTools. Despois de recibir os resultados, o servidor apagouse e volveuse ao punto de control anterior para eliminar calquera caché.

O probador e o servidor web estaban situados no mesmo host e no mesmo conmutador virtual.

Para avaliar inmediatamente o subsistema de disco, utilízanse os resultados das probas de referencia de ATTO e CrystalDIskMark para ter unha idea dos atascos.

Datos tomados da máquina virtual:Batalla de servidores WEB. Parte 1: HTTP fóra de contacto:
Batalla de servidores WEB. Parte 1: HTTP fóra de contacto:
Batalla de servidores WEB. Parte 1: HTTP fóra de contacto:
Batalla de servidores WEB. Parte 1: HTTP fóra de contacto:

Resultados:

TTFB:

Batalla de servidores WEB. Parte 1: HTTP fóra de contacto:
IIS ten o TTFB medio máis baixo, 0,5 ms, en comparación con 1,4 ms de Apache e 4 ms de Nginx.

Rendemento:

Primeiro, vexamos o ben que se escala cada servidor en termos de número de núcleos.

Batalla de servidores WEB. Parte 1: HTTP fóra de contacto:
O gráfico mostra o número de solicitudes que o tester fixo ao servidor web e a latencia. Mostra que NGINX xestionou o 98 % de todas as solicitudes, entregando o sitio en 20 ms ou menos. IIS e Apache xestionaron o último 5 % de todas as solicitudes en 76 ms e 14 ms, respectivamente.

Batalla de servidores WEB. Parte 1: HTTP fóra de contacto:
Batalla de servidores WEB. Parte 1: HTTP fóra de contacto:
Batalla de servidores WEB. Parte 1: HTTP fóra de contacto:
O gráfico mostra o tempo medio de procesamento dunha solicitude durante unha proba de estrés.

Como se pode ver nos gráficos, IIS superou tanto a Apache como a Nginx, ralentizándose significativamente con cargas elevadas. 

IIS claramente preferiu 4 núcleos sobre 8, mostrando latencias máis baixas en 4, pero tampouco favoreceu moito 1 núcleo.

NGINX escala ben nos 8 núcleos, mentres que para Apache, o escenario dun só núcleo parece ser a mellor opción.

Escalabilidade:

nginx:

Agora vexamos a escalabilidade por frecuencia e número de núcleos. 

Batalla de servidores WEB. Parte 1: HTTP fóra de contacto:
Nginx fallou as probas cun límite do 1 % en 4 e 1 núcleo; cando superou as 2000 solicitudes, finalizou a conexión co tester.

Apache:

Batalla de servidores WEB. Parte 1: HTTP fóra de contacto:
Apache, como Nginx, rendeuse e finalizou a conexión despois de procesar 2500 solicitudes. Apache fallou nas probas en 8, 4 e 1 núcleo cun límite do 1 %, pero tamén fallou na proba cun límite do 5 % nun só núcleo, o que é peor que Nginx.

IIS:

Batalla de servidores WEB. Parte 1: HTTP fóra de contacto:
Durante as probas, IIS acumulou unha cola xigantesca de solicitudes, pero procesounas todas. Ao parecer, non ten ningún tempo de espera de procesamento de solicitudes configurado de fábrica.

Batalla de servidores WEB. Parte 1: HTTP fóra de contacto:
O diagrama mostra o tempo que levou completar a proba. Descartáronse as configuracións de proba máis absurdas. O diagrama demostra o esixente que é IIS en canto ao hardware e o marabilloso que é NGINX.

Escalabilidade do disco:

nginx:

Agora vexamos a escalabilidade en termos de frecuencia, número de núcleos e velocidade do disco. 

Batalla de servidores WEB. Parte 1: HTTP fóra de contacto:
Esta vez Nginx fallou 4 probas en lugar de dúas.

Apache:

Batalla de servidores WEB. Parte 1: HTTP fóra de contacto:
Apache fallou o mesmo número de probas que a última vez.

IIS:

Batalla de servidores WEB. Parte 1: HTTP fóra de contacto:
IIS mostra un gráfico case idéntico, coma se non houbese restricións de disco. En xeral, os gráficos de todos os servidores non cambiaron moito, o que significa que cada un almacenou ficheiros estáticos na caché da RAM e os serviu desde alí. Aquí vemos o principal colo de botella: o propio servidor web.

É demasiado cedo para sacar conclusións destas probas; aínda non probamos HTTPS, compresión e HTTP/2 cun certificado Let's Encrypt activo. Abordaremos iso no seguinte artigo.

Batalla de servidores WEB. Parte 1: HTTP fóra de contacto:

Fonte: www.habr.com

Compre hospedaxe fiable para sitios con protección DDoS, servidores VPS VDS 🔥 Compra aloxamento web fiable con protección DDoS, servidores VPS VDS | ProHoster