Tecnologia e Informação sem bla bla bla

2006-12-11

Análise; Apache vs. 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.

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.

0 comentários: