Performance: Apache vs. IIS

Análise de desempenho entre Apache e IIS

Os servidores web são os principais fornecedores de conteúdo da internet. Esta responsabilidade esta dividida, principalmente, entre dois serviços. O Httpd do grupo Apache, responsável por 65% aproximadamente, e o IIS da Microsoft com cerca de 25% do mercado.

Como outros casos, existe uma discussão que tenta definir qual é o melhor entre os dois softwares, desta forma esta pesquisa foi elaborada para avaliar os dois sistemas. Com base no resultado poderemos definir qual é o melhor serviço para determinada situação.

Apache versus IIS

Definições

Hardware do servidor (Windows e Linux)

  • Processador Intel Xeon TM Dual (biprocessada)
  • 2Gb RAM
  • 2x Discos SCSI 76Gb
  • Placa de Rede Gigabit

Máquinas clientes (4 PCs)

  • Processador AMD Atlhon 64 2800
  • 1Gb RAM
  • Placa de Rede Gigabit
  • Sistema operacional - Linux Debian 64 (sem ambiente gráfico)

Infraestrutura de Rede

  • Switch Gigabit
  • Rede local, sem contato com a internet

Particionamento - Windows

  • C:\ 10GB (NTFS)
  • D:\ 66GB (NTFS)

Particionamento - Linux

  • swap 4Gb
  • /boot 100Mb (ext3)
  • / 15Gb (ext3)
  • /home 56Gb (ext3)

IIS 5

  • Sistema Operacional Windows 2000 Server
  • Todas atualizações disponíveis no windows Update aplicadas
  • Cache desativado

IIS 6

  • Sistema Operacional Windows 2003 Server
  • Todas atualizaçõs disponíveis no Windows Update aplicadas
  • Cache desativado

Apache 1.3

  • Sistema Operacional Linux Red Hat AS (sem ambiente grafico)
  • Cache desativado

Apache 2.2

  • Sistema Operacional Linux Red Hat AS (sem ambiente gráfico)
  • Cache desativado

Medições

Tempo de resposta

  1. Avaliar o tempo entre a requisição e o completo recebimento de um arquivo html simples de 188Kb por protocólo HTTP.
  2. O resultado equivale a média de tempo em relação ao número de requisições.

Utilização de CPU

  1. Avaliar a utilização de processamento do servidor durante as requisições.
  2. O resultado equivale a média de uso do processamento em relação ao número de conexões.

Utilização de RAM

  1. Avaliar a utilização da memória RAM durante as requisições.
  2. O resultado equivale a média de uso da mémoria em relação ao número de requisições.

Metodologia

  1. Enviar um bloco de X requisições, sendo que cada uma das quatro máquinas clientes enviam a um mesmo servidor X/4 requisições. Utiliza-se o software wget para realizar cada requisição.
  2. Aguardar e registar o resultado.
  3. Estabilizar o servidor e as máquinas clientes.
  4. Enviar um novo bloco de requisições, conforme item 1.

Resultado


Tempo de resposta



Uso de CPU



Uso de RAM


Conclusão

Após estes resultados é possível analisar o comportamento dos sistemas e assim definir a melhor opção para determinado projeto. Fica evidente que em casos com requisições inferiores a 900 ambos os sistemas suprem as necessidades fundamentais de performance e disponibilidade que um projeto possa vir a requerer. Desta maneira a tecnologia de desenvolvimento (ASP, PHP, .NET, CGI...) e o custo de licenciamento serão os fatores a serem considerados na tomada de decisão.

Aplicações de intranet (médias e pequenas empresas), sites corporativos e pequenos sistemas de informação são alguns exemplos onde qual servidor web a utilizar não será o fator predominante para a decisão. Nestes caso o custo com as licenças e a tecnologia de desenvolvimento, entre outros fatores, predominarão para a escolha do serviço de publicação.

Porém quando falamos em alta requisição os sistema Httpd da Apache mostra melhor desempenho. Isto justifica sua liderança no mercado atualmente e o crescimento até setembro de 2005. Entretanto, a partir desta data a utilização deste servidor web começou a cair. Abaixo está um gráfico cotendo o histórico da fatia de mercado por sistema.

Fatia de Mercado por servidor web
Fonte Netcraft


Particularmente acredito que esta queda esteja associada a facilidade de clusterização e o detalhamento na configuração que a Microsoft provê ao IIS 6 e ao Win2k3. Em um ambiente cluster aliado a facilidade de configuração, em comparação ao sistema da Apache, os problemas relacionados a alta requisição seriam resolvidos.

Em contrapartida o custo de licenças para a utilização da plataforma Microsoft pode inviabilizar um projeto. Neste caso a vantagem novamente volta a ser da Apache e consequentemente do Linux. Este também exige profissionais extremamente qualificados para realizar a implatação de um ambiente em cluster, porém não apresenta custos de licenças ou renovação destas.

A decisão, em determinados casos, terá como relevância principal o custo do projeto; sendo ou não este de alta requisição. De qualquer maneira, a escolha da tecnologia a ser utilizada deve ser analisada caso a caso. Felizmente existem as opções, ambas possuem vatagens e desvantagens; sendo assim não podemos generalizar e definir qual é a melhor de todas, mas sim decidir qual é a melhor para determinado projeto.

Comments

Knols em português

Seu Knol foi incluído na lista "Knols em Língua Portuguesa". Se tiver mais outros artigos em português, ou saber de mais algum, sinta-se livre para adicioná-lo a lista:
http://knol.google.com/k/paulista/knols-em-lngua-portuguesa/4uupst17g9yp/6#

Last edited Aug 1, 2008 9:45 AM
Report abusive comment
Willian Corrêa
Willian Corrêa
CIO
São Paulo, SP - Brasil
Article rating:
Your rating:
Moderated collaboration
All signed in users can suggest edits to the knol, but these need approval from an author before being published
All Rights Reserved.
Version: 2
Versions
Last edited: Jul 25, 2008 7:14 AM.

Activity for this knol

This week:

8pageviews

Totals:

325pageviews
1comments