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