quarta-feira, julho 19, 2006

Apache vs. IIS

Fonte:





Willian Corrêa


[Willian Corrêa] É colunista desde maio de 2004, trabalha com Linux há mais de 8 anos e é colaborador da Plugin Internet Corporativa no Centro de Operações e Infraestrutura.




Os servidores web são os principais fornecedores de conteúdo da internet. Esta responsabilidade está 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 gráfico)

. Cache desativado



Apache 2.2


. Sistema Operacional Linux Red Hat AS (sem ambiente gráfico)

. Cache desativado



Medições




Tempo de resposta


01. Avaliar o
tempo entre a requisição e o completo recebimento
de um arquivo html simples de 188Kb por protocolo HTTP.


02. O resultado
equivale a média de tempo em relação ao
número de requisições.


Utilização
de CPU


01. Avaliar
a utilização de processamento do servidor durante
as requisições.



02. O resultado equivale a média de uso do processamento
em relação ao número de conexões.




Utilização
de RAM


01. Avaliar a utilização
da memória RAM durante as requisições.


02. O
resultado equivale a média de uso da mémoria
em relação ao número de requisições.



Metodologia


01. 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.


02. Aguardar e registar
o resultado.


03. Estabilizar o servidor e as máquinas
clientes.


04. Enviar um novo bloco de requisições,
conforme item 1.




Resultado





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 casos, 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.



Particularmente, acredito que esta queda esteja associada à 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 à facilidade de configuração, em comparação ao sistema da Apache, os problemas relacionados à 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, conseqüentemente, 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 vantagens e desvantagens; sendo assim, não podemos generalizar e definir qual é a melhor de todas, mas sim decidir qual é a melhor para determinado projeto.








Nenhum comentário:

Postar um comentário

Aúncio