Rui Gaspar

Those who cannot remember the past are condemned to repeat it

WebServer Benchmarking

April 6th, 2009

Actualmente o apache lidera o ranking de utilização dos Web Servers. No entanto existem outros Web Servers que não tendo o grau de popularidade do apache conseguem ter um desempenho muito interessante.

Por esse motivo procedi a um teste de desempenho a 4 Web Servers, sendo eles: Apache httpd, Nginx, LiteSpeed e Lighttpd.
Para este teste fora usadas duas máquinas. Uma fazendo de servidor e outra simulando os clientes, usando uma ferramenta de medição (JMeter).

Todos os servidores foram testados usando uma páginas estática (HTML) e uma página dinâmica (PHP) com uma repetição de 5 vezes em cada teste para impedir possíveis erros circunstanciais.

O primeiro teste mostra Throughput (respostas por segundo) dos diversos servidores quando sujeitos a 100 clientes simultâneamente com cada um a pedir 500 páginas e com a opção KeepAlive activa.

webserver_benchmark_throughput
Fig.1 – Throughput (Requests/Sec)

Podemos também ver o estado da memória e do CPU do servidor durante a execução de cada teste.

webserver_benchmark_serverload
Fig.2 – ServerLoad

Com estes testes, verificamos que existem outras boas alternativas ao Apache. Para uso de conteúdo estático o nginx teve um desempenho muito bom, enquanto que para conteúdo dinâmico, o apache continuar a ser a melhor opção. Mas temos que ter em mente que a maioria dos sites, tem na sua maioria conteúdo estático (imagens, css, html, js, etc.).
Relativamente a carga de CPU, o nginx também é o que menos CPU consome, o que se vem reforçar a liderança deste benchmarking.
O único ponto a apontar ao Nginx, foi o facto de a sua instalação não ser simples, e requereu alguma pesquisa principalmente para colocar o modulo php a funcionar.