Neste artigo, tentaremos a engenharia reversa, pode-se dizer. Nós olhamos com as mãos sujas sob o capô de cada servidor da Web, explorando-as como ninguém jamais teria explorado.
Este teste é uma medida de um cavalo esférico no vácuo, nada mais que os dados que foram recebidos, e agora não sabemos o que fazer com eles.
Metodologia
O sistema operacional para Nginx e Apache é o Ubuntu 18.04 LTS, para IIS Windows Server Core 2019. Todos os sistemas operacionais antes dos testes receberam as atualizações mais recentes em 4 de dezembro de 2019.
Os testes foram realizados exclusivamente sobre HTTP. Cada servidor da web tinha a mesma página, um modelo gratuito para o Jekyll da Codrops.
Link Em cada um dos servidores web, a compactação gzip foi desativada.
O teste de largura de banda foi realizado com o Httpd-tools com argumentos:
ab -n 50000 -c 500 http://192.168.76.204:80/
Os servidores foram definidos para um limite de 10, 5 e 1 por cento do núcleo nos 8, 4 e um núcleo. Como banco de ensaio, havia um computador com 9900K a 5400 MHz, o que significa que o servidor, que recebeu um limite de 10%, recebe cerca de 540 MHz por núcleo.
O teste TTFB foi realizado na primeira inicialização do servidor e foi medido usando o DevTools. Após receber o resultado, o servidor foi desligado e revertido para o ponto de controle anterior para excluir a aparência de qualquer tipo de cache.
O testador e o servidor da web estavam no mesmo host e no mesmo comutador virtual.
Para avaliar imediatamente o subsistema de disco, os resultados dos benchmarks ATTO e CrystalDIskMark para entender os gargalos.
Dados obtidos da máquina virtual: Resultados:
TTFB:
O TTFB médio para o IIS é o mínimo, 0,5ms, contra 1,4ms para o Apache e 4ms para o Nginx.Rendimento:Primeiro, considere a qualidade de cada servidor em termos de número de núcleos.
O gráfico mostra o número de chamadas do testador para o servidor da web e a latência. O gráfico mostra que o NGINX cumpriu 98% de todos os hits, fornecendo o site por 20ms ou menos. O IIS e o Apache duram 5% de todas as chamadas trabalhadas por 76ms e 14ms, respectivamente.
O gráfico mostra o tempo médio de processamento de uma solicitação durante um teste de estresse.
Como você pode ver nos gráficos, o IIS expandiu o Apache e o Nginx, desacelerando significativamente sob alta carga.
O IIS claramente preferia quatro núcleos a oito, mostrando menos atrasos em quatro, mas também não endossava fortemente um núcleo.
O NGINX é perfeitamente dimensionado para todos os 8 núcleos e, para o Apache, parece que um script de núcleo único parece ser a melhor opção.
Escalabilidade:
Nginx:Agora considere a escalabilidade na frequência e no número de núcleos.
Os testes com um limite de 1% nos núcleos 4 e 1 do Nginx não foram aprovados, deixando 2000 solicitações, desconectados do testador.
Apache:Após processar 2500 solicitações, o Apache como Nginx se rendeu e desconectou. O Apache não passou no teste em núcleos 8, 4 e 1 com um limite de 1%, mas, além disso, o teste no limite de 5% em um núcleo não passou, o que é pior que o Nginx
IIS:O IIS durante os testes reuniu uma fila gigante de solicitações, mas processou cada uma delas. Aparentemente, os tempos limite prontos para processar a solicitação não estão definidos nela.
O diagrama mostra o tempo necessário para concluir o teste. Configurações absurdamente absurdas de teste foram descartadas. O diagrama mostra como o IIS é exigente em hardware e como o NGINX é bonito.
Escalabilidade de disco:
Nginx:Agora considere a escalabilidade na frequência e número de núcleos e velocidade do disco.
Desta vez, o Nginx falhou em 4 testes, em vez de dois.
Apache:O Apache falhou no mesmo número de testes da última vez.
IIS:O IIS mostra um gráfico quase idêntico, como se não houvesse restrições de disco. Em geral, os gráficos de todos os servidores não mudaram muito, o que significa que cada um deles armazenou em cache as estatísticas na RAM e as forneceu a partir daí. Aqui vemos o principal gargalo - o próprio servidor da web.
É muito cedo para tirar conclusões com base nesse teste; ainda não testamos HTTPS, compactação e HTTP / 2 com um certificado ativo do Let's Encrypt. Falaremos sobre isso no próximo artigo.
Oferecemos uma tarifa atualizada do UltraLite
Windows VDS por 99 rublos com o Windows Server 2019 Core instalado.
