Escolar Documentos
Profissional Documentos
Cultura Documentos
ii
USP - So Carlos
Fevereiro/2008
iii
iv
vi
Agradecimentos
Agradeo aos meus pais, Geraldo e Telma, pela educao, por estarem presentes em
todos os momentos difceis e felizes da minha vida, pela confiana que depositam sempre em
mim, pela preocupao, pelo apoio financeiro, enfim, por tudo.
professora Regina Santana, pela orientao nesses ltimos anos e pelos
conhecimentos transmitidos durante o mestrado.
professora Sarita por sempre estar disposta a me ajudar.
Ao professor Marcos Santana, pelas crticas e opinies seguras.
Aos amigos do LaSDPC, Jlio, Luis, Lucas, Fbio, Valter, Augusto, Marcelo e
Ottone, pela ajuda e por proporcionarem um ambiente de trabalho alegre.
A todos, que mesmo indiretamente, contriburam para a concluso deste mestrado.
Ao CNPq, pelo apoio financeiro dado a este trabalho.
vii
viii
RESUMO
ix
Abstract
This work presents the implementation and validation of a web server
model that divides the web server functions into four modules and each
one of these is responsible for an execution step, in which a request goes
through during processing. These modules are: request serving (module
1); file transferring to the main memory (module 2); dynamic request
processing (module 3); and client file sending (module 4). These four
modules are linked and the W4Gen generates the initial loads. These loads
run in the order as follows: modules 1, 2 and 4. The module 3 is used only
when the request is dynamic. When a request is served by a module, an
execution time is defined (i.e. the time used by the request in the module),
which is based on real world web servers benchmarks. The results
obtained in the work aims to be integrated to other projects conduced in
the Distributed System and Concurrent Programming group (LaSDPC) in
order to reach results close to real world web servers.
xi
xii
Sumrio
Lista de Figuras ................................................................................................................ vi
Lista de Tabelas ............................................................................................................... vii
Lista de Abreviaturas.................................................................................................... viii
1.
INTRODUO.................................................................................................................1
1.1.
1.2.
1.3.
1.4.
2.
CONTEXTUALIZAO ...................................................................................................1
MOTIVAO ................................................................................................................2
OBJETIVOS ...................................................................................................................3
ESTRUTURA DA DISSERTAO .....................................................................................3
A INTERNET....................................................................................................................5
2.1.
CONSIDERAES INICIAIS ............................................................................................5
2.2.
MODELO DE REFERNCIA ISO/OSI E PROTOCOLO TCP/IP ..........................................6
2.2.1
Camada de Aplicao .........................................................................................7
2.2.2
Camada de Transporte .......................................................................................8
2.2.3
Camada de Rede .................................................................................................9
2.2.4
Camada de Enlace ............................................................................................10
2.2.5
Camada Fsica ..................................................................................................11
2.3.
A WORLD WIDE WEB ................................................................................................11
2.4.
PROTOCOLO HTTP ....................................................................................................12
2.5.
CONSIDERAES FINAIS .............................................................................................16
3.
4.
4.5.1
Tratamento de Requisies TCP.......................................................................31
4.5.2
Pool de Threads HTTP .....................................................................................31
4.5.3
Envio de Arquivos Requisitados .......................................................................32
4.5.4
Descarga de Buffers de Sada...........................................................................33
4.6.
CONSIDERAES FINAIS ............................................................................................33
5. MODELO DE SERVIDOR WEB COM QUATRO MDULOS DE
ATENDIMENTO DE REQUISIES (SWMAR) .............................................................35
5.1.
CONSIDERAES INICIAIS ..........................................................................................35
5.2.
TRABALHOS RELACIONADOS .....................................................................................35
5.2.1
Modelos de Servidores Web..............................................................................36
5.2.2
Anlise de Servidores Web ...............................................................................37
5.3.
W4GEN......................................................................................................................39
5.3.1
Cdigo de Resposta ..........................................................................................40
5.3.2
Classe de Objeto ...............................................................................................41
5.3.3
Intervalo de Chegada........................................................................................42
5.3.4
Tamanho de Objeto...........................................................................................43
5.3.5
Arquivo Resultante............................................................................................43
5.4.
SIMPACK ....................................................................................................................45
5.5.
MODELO DE SERVIDOR WEB COM QUATRO MDULOS DE ATENDIMENTO DE
REQUISIES (SWMAR).......................................................................................................46
5.5.1
Mdulo 1: Atendimento de Requisies HTTP.................................................48
5.5.2
Mdulo 2: Transferncia de Arquivos Memria Principal ...........................48
5.5.3
Mdulo 3: Script Engine Execuo de Requisies Dinmicas ....................50
5.5.4
Mdulo 4: Envio de Dados ...............................................................................51
5.5.5
Estimativa e Tempos de Servio .......................................................................53
5.5.6
Entrada de Dados .............................................................................................57
5.5.7
Sada de Dados .................................................................................................59
5.6.
CONSIDERAES FINAIS ............................................................................................60
6.
7.
CONCLUSO .................................................................................................................73
7.1.
7.2.
7.3.
8.
REFERNCIAS BIBLIOGRFICAS..........................................................................77
xiv
LISTA DE FIGURAS
FIGURA 2.1 - CAMADAS, PROTOCOLOS E INTERFACES ..................................................................6
FIGURA 2.2- CAMADA DE APLICAO (KUROSE; ROSS, 2003) ................................................8
FIGURA 2.3 - CAMADA DE TRANSPORTE (KUROSE; ROSS, 2003)..............................................9
FIGURA 2.4 - CAMADA DE REDE (KUROSE; ROSS, 2003)........................................................10
FIGURA 2.5 - CAMADA DE ENLACE (KUROSE; ROSS, 2003) ...................................................11
FIGURA 2.6 - ESQUEMA DO PROTOCOLO URL............................................................................12
FIGURA 2.7 - COMPARAO ENTRE A VERSO 1.0 (A) E 1.1 (B) DO PROTOCOLLO HTTP............14
FIGURA 2.8 - REQUISIO HTTP. ..............................................................................................14
FIGURA 2.9 - RESPOSTA HTTP. .................................................................................................15
FIGURA 4.1 - TIPOS DE ARQUITETURA DE SERVIDORES WEB .......................................................26
FIGURA 4.2 - ESQUEMA CLIENTE-SERVIDOR NAS REQUISIES ESTTICAS ................................28
FIGURA 4.3 ESQUEMA CLIENTE-SERVIDOR DAS REQUISIES DINMICAS .................................30
FIGURA 4.4 - UM SERVIDOR HTTP DE UM PROCESSO POR CONEXO COM UM PROCESSO MESTRE.
..........................................................................................................................................32
FIGURA 4.5 - UM SERVIDOR DE UM NICO PROCESSO COM MLTIPLAS THREADS.......................32
FIGURA 5.1 GERAO DE REQUISIES COM CDIGO 200 W4GEN. ......................................40
FIGURA 5.2 - GERAO DE CDIGO DE STATUS BASEADO EM DISTRIBUIO W4GEN.............41
FIGURA 5.3 GERAO DE CLASSES OBJETOS SEGUNDO DISTRIBUIO GEOMTRICA...............41
FIGURA 5.4 GERAO DE CLASSES DE OBJETOS SEGUNDO VALORES DE INTERFACE................42
FIGURA 5.5 INTERVALO DE CHEGADA DAS CLASSES................................................................43
FIGURA 5.6 TAMANHO DE OBJETO DAS CLASSES. ....................................................................43
FIGURA 5.7 GERAO DE CARGA DE TRABALHO. ....................................................................44
FIGURA 5.8 EXEMPLO DE CARGA SINTTICA GERADA PELO W4GEN. ......................................44
FIGURA 5.9 FLUXOGRAMA DO SWMAR.................................................................................47
FIGURA 5.10 ESQUEMA DE ATENDIMENTO NO MDULO 1. ......................................................48
FIGURA 5.11 FLUXO DE REQUISIES NO MDULO 2...............................................................50
FIGURA 5.12 FLUXO DE REQUISIES NO MDULO 3...............................................................51
FIGURA 5.13 FLUXO DE REQUISIES DO MDULO 4...............................................................52
FIGURA 5.14 FUNCIONAMENTO DO ESVAZIAMENTO DE BUFFERS. ...........................................52
FIGURA 5.15 EXEMPLO DE DISTRIBUIO EXPONENCIAL. .......................................................56
FIGURA 6.1 CARACTERSTICAS DAS DIFERENTES CARGAS INICIAIS. ........................................62
FIGURA 6.2 CARACTERSTICAS DOS TRS TIPOS DE LOGS. .......................................................63
FIGURA 6.3 UTILIZAO DOS MDULOS. ................................................................................64
FIGURA 6.4 RESULTADO DE ALTERAO DE PARMETROS DO MDULO 1 - TRADICIONAL. ....64
FIGURA 6.5 - RESULTADO DE ALTERAO DE PARMETROS DO MDULO 1 ACADMICO........65
FIGURA 6.6 - RESULTADO DE ALTERAO DE PARMETROS DO MDULO 1
INFORMATIVO/NOTCIAS....................................................................................................65
FIGURA 6.7 THROUGHPUT E TEMPOS DE SIMULAO TRADICIONAL. ...................................66
FIGURA 6.8 THROUGHPUT E TEMPOS DE SIMULAO ACADMICO.......................................66
FIGURA 6.9 THROUGHPUT E TEMPOS DE SIMULAO INFORMATIVO/NOTCIA. .....................67
FIGURA 6.10 RESULTADO DE ALTERAO DOS PARMETROS DE HARDWARE PARA LOG
TRADICIONAL.....................................................................................................................68
FIGURA 6.11 RESULTADO DE ALTERAO DOS PARMETROS DE HARDWARE PARA LOG
ACADMICO. ......................................................................................................................68
FIGURA 6.12 - RESULTADO DE ALTERAO DOS PARMETROS DE HARDWARE PARA LOG
INFORMATIVO/NOTCIAS. ...................................................................................................68
FIGURA 6.13 PORCENTAGEM DE UTILIZAO DOS MDULOS LOG TRADICIONAL..................69
FIGURA 6.14 PORCENTAGEM DE UTILIZAO DOS MDULOS LOG ACADMICO. ...................69
xv
xvi
LISTA DE TABELAS
Tabela 1 Camadas e funes do modelo OSI .........................................................................7
Tabela 2 Mtodos e funes existentes nas mensagens de requisio do protocolo http 1.1
.......................................................................................................................................15
Tabela 3 Cdigos de resposta do protocolo HTTP 1.1 .........................................................16
Tabela 4 Classificao de tempos de acordo com as classes de objetos................................54
Tabela 5 Tempos de utilizao do CPU no processamento de requisies...........................56
Tabela 6 Cenrios de simulao com alterao de parmetros do Mdulo 1........................66
Tabela 7 Cenrios de testes com alteraes de parmetros de hardware...............................69
xvii
xviii
LISTA DE ABREVIATURAS
ARPA
CGI
CISC
CPU
DNS
DoD
FCFS
FTP
HTML
HTTP
Httpd
IETF
IP
ISO
JSP
LCFS-PR
MFLOPS
MIPS
MSS
OSI
PPP
QoS
RFC
RISC
RR
RTT
SE
SMTP
TCP
UDP
WWW
xix
xx
CAPTULO
1. Introduo
1.1. Contextualizao
A popularidade da World Wide Web, tambm chamada WWW ou simplesmente Web,
tem aumentado significativamente nos ltimos anos. Em dezembro de 1992, o trfego da WWW
era praticamente inexistente, sendo no total de apenas 74MB por ms no backbone da rede
NSFNET (ARLITT; WILLIAMSON, 1997). Hoje, o trfego WWW um dos componentes
dominantes da Internet (GILDER, 1997).
Algumas explicaes para o crescimento exponencial da Internet so: o fcil uso da Web
mediante a disponibilidade de interfaces grficas para a navegao e para a visualizao de
documentos; a existncia de editores e ferramentas de suporte para criao e publicao de
documentos Web; crescente tendncia entre pesquisadores, educadores, instituies, e
organizaes comerciais em usar a Internet para disseminar informaes timely fashion1; a
independncia de localidade dos documentos Web que podem ser referenciados livremente; e um
contnuo crescimento exponencial no nmero de hosts e usurios da Internet (ARLITT;
WILLIAMSON, 1997).
Acompanhado com o crescimento da Web veio o surgimento de novas utilizaes que
geraram problemas no enfrentados com as aplicaes originais. Esses problemas aconteceram
pelo fato da Internet passar, de uma rede para fins de pesquisa, restrita a rgos governamentais
e instituies acadmicas onde o trfego era baseado em documentos textuais, para atualmente
utilizar um dos mais importantes meios de comunicao, para fins informativos, educacionais,
comerciais e entretenimento.
1.2. Motivao
Em um ambiente Web, um usurio no se importa com gargalos no trfego, servidores
sobrecarregados, capacidade total da rede4, entre outros efeitos. Alm do contedo, os usurios
exigem desempenho, disponibilidade e segurana (MENASC; ALMEIDA, 2003).
Como soluo para a queda na qualidade dos servios oferecidos na Web, no incio eram
feitas atualizaes tanto nos meios de rede quanto nos prprios servidores web (DEVLIN et al.,
1999). Mas essa tcnica simplesmente expande a capacidade do sistema pela adio de mais
recursos, resolvendo apenas temporariamente o problema. Essa tcnica no muito apropriada
porque, alm de inutilizar os servidores antigos demandavam muitos recursos financeiros para a
aquisio de novos equipamentos (CPU, disco, interface de disco) (CARDELLINI et al., 2002).
2
Software de interface que permite interao de diferentes aplicaes de softwares, geralmente sobre diferentes
plataformas de hardware e infra-estrutura, para troca de dados.
3
Quality of Service.
4
Bandwidth
Com a capacidade das redes crescendo mais rapidamente que o previsto pela lei de
5
Moore , os servidores web tornam-se o gargalo da Web sendo que recentes medies mostram
que 40% do atraso na Web so de responsabilidade das transaes que acontecem nos servidores
web (HIUTEMA, 2000).
Uma forma de avaliar os servidores web, visando encontrar a melhor proposta para
atender crescente demanda pelos servidores web, a utilizao de modelos de servidores web.
Esses modelos podem responder perguntas especulativas tais como: qual ser o comportamento
do servidor web se um determinado componente interno foi acrescido, ou se for feita alguma
alterao na poltica de esvaziamento dos buffers de sada de dados.
Este projeto foi motivado justamente pela capacidade das tcnicas de modelagem em
responder s perguntas e se e tambm pela capacidade de integrar outros projetos em
desenvolvimento no grupo de sistemas distribudos do ICMC da USP como (TEIXEIRA, 2004)
e (ESTRELLA, 2005) podendo substituir os servidores web utilizados nesses projetos,
modelados como caixas-pretas, por modelos de servidores mais detalhados.
1.3. Objetivos
O objetivo do projeto apresentado nesta monografia desenvolver um modelo de
servidor web, baseado em SANT ANNA (2004), onde sejam modelados componentes internos
responsveis pelo tratamento das conexes desde o estabelecimento da conexo at o envio da
resposta ao cliente. E como foi dito anteriormente, integrar outros projetos do grupo de Sistemas
Distribudos e Programao Concorrente (LaSDPC).
Esse modelo deve considerar tanto requisies estticas quanto requisies dinmicas,
protocolo HTTP 1.1.
CAPTULO
2. A Internet
2.1. Consideraes Iniciais
No alto da Guerra Fria o Departamento de Defesa (DoD) necessitava de uma rede de
comunicao que, mesmo em caso de um ataque nuclear continuasse funcionando. At ento, a
comunicao era feita inteiramente atravs da rede pblica de telefone. Para resolver esse
problema foi criada a ARPA (Advanced Research Projects Agency), baseada em pesquisas
desenvolvidas por diversos especialistas, dentre eles Larry Roberts que props a ARPANET. A
ARPANET surgiu em 1967 tornou-se o backbone da Internet (COMER, 2000).
A ARPANET usava comunicao ponto-a-ponto, alm de fazer troca de pacotes entre
diferentes redes como: a de telefonia, a rede de rdio e canais de comunicao de satlites. No
incio a ARPANET era utilizada apenas para fins de pesquisa pelo fato que os ns da ARPANET
eram localizados em algumas instituies acadmicas e por isso eram muito utilizados por
pesquisadores do meio acadmico. Apesar da integrao da ARPANET havia o problema de no
haver um protocolo padro. Em 1983, para solucionar esse problema foi adotado o protocolo
TCP/IP (SOCOLOFSKY; KATE, 1997), aceito principalmente por causa da verso Berkley
UNIX que, alm de ter incluso o protocolo TCP/IP o colocou em situao de domnio pblico
possibilitando a alterao e desenvolvimento de aplicaes.
Com a abertura do protocolo TCP/IP surgiram comits e rgos que participavam da
criao e divulgao de tecnologias e novos protocolos, destacando o IETF, que at hoje
responsvel pela manuteno e apoio aos padres de Internet e TCP/IP (principalmente atravs
dos documentos conhecidos como RFC). Tais documentos descrevem diversos protocolos e
servem de base para novas tecnologias. Tais fatores foram de vital importncia para o
crescimento e adeso de novos ns para a Internet.
A comunicao entre as camadas de mesmo nvel so demonstradas nas figuras 2.2, 2.3,
2.4, 2.5. Essas figuras representam a comunicao entre os nveis equivalentes.
Funo
Contm uma variedade de protocolos comumente usados
pelo usurio.
Camada responsvel com a sintaxe e a semntica da
informao transmitida.
Permite que usurios de diferentes mquinas estabeleam
sesses de comunicao.
Sequenciamento, confirmao e recebimento de pacotes.
Roteamento de dados atravs da rede.
Formatao de informao em quadros.
Conexo fsica entre o sistema operacional e a rede.
10
11
eletrnico. Embora essas aplicaes fossem (e continuem sendo) extremamente teis, a Internet
no era conhecida fora das comunidades acadmicas e de pesquisa. No incio da dcada de 1990,
entrou em cena uma nova aplicao A World Wide Web (BERNERS-LEE, 1994). A Web a
aplicao da Internet que chamou a ateno do pblico em geral. Ela transformou
significantemente a maneira como pessoas interagem dentro e fora de seus ambientes de
trabalho. Alou a Internet de apenas mais uma entre muitas redes de dados (X.25 e redes frame
relay) para, essencialmente, a nica rede de dados. (KUROSE; ROSS, 2003).
O funcionamento da Web baseado no paradigma cliente-servidor (TANENBAUM,
1995) onde h uma estrutura de interligao entre os documentos. Essa estrutura permite que um
documento referencie outro que pode estar distribudo geograficamente (em outras mquinas na
Internet). Do ponto de vista do usurio, a Web consiste de uma vasta coleo de documentos, ou
pginas, que podem conter links para outras pginas relacionadas. Para visualizar as pginas so
utilizados programas chamados browsers, que merecem crdito pelo crescimento no nmero de
usurios devido interface grfica disponvel, que em um clique, pode levar o usurio a um novo
documento (ARLITT; WILLIAMSON, 1997).
12
13
Figura 2.7 - Comparao entre a verso 1.0 (a) e 1.1 (b) do protocollo HTTP.
servidor Web (linha 2), o tipo de browser utilizado pelo cliente (linha 4) e a linguagem padro do
cliente (linha 5). O campo connection responsvel pelas conexes persistentes, se o campo
estiver com valor close, mesmo sendo um cliente verso 1.1, a conexo ser fechada.
14
Funo
Solicita que seja retornado o recurso identificado pela
URL
HEAD
Obtm informaes sobre o recurso sem que o mesmo seja
retornado ao cliente. Testa a validade de links,
acessibilidade e a data da ltima modificao.
POST
Estabelece e encerra enlaces de comunicao.
OPTIONS Sequenciamento, confirmao, recebimento de pacotes de
dados.
PUT
Roteamento de pacotes atravs da rede.
DELETE
Formatao da informao em quadros
TRACE
Conexo fsica entre o sistema operacional e a rede.
CONNECT Conexo fsica entre o sistema operacional e a rede.
Tabela 2 Mtodos e funes existentes nas mensagens de requisio do protocolo http 1.1.
15
Classes
1xx
2xx
3xx
4xx
5xx
Descrio
Requisio recebida e em fase de processamento.
Requisio recebida, entendida e processada com sucesso.
Redireciona o cliente para uma outra URL.
Requisio invlida.
Incapacidade do servidor em processar a requisio.
16
CAPTULO
3. Anlise de Desempenho e
Simulao
3.1. Consideraes Iniciais
Avaliar o desempenho de um sistema computacional essencial para obter concluses
sobre o desempenho e o comportamento em determinadas situaes. Em todo o ciclo de vida de
um sistema de computador, desde o projeto at sua atualizao, o estudo de avaliao permite
aos responsveis do projeto abstrair informaes importantes, tais como, o melhor sistema para
uma dada aplicao e a quantidade de recursos a ser utilizado. Apesar de sua importncia, muitas
vezes esta atividade desprezada com conseqncias drsticas para o sistema final. Essa falta de
interesse est relacionada, principalmente, a dois fatores: os responsveis no dominam o
emprego de ferramentas de anlise; ou a avaliao torna-se uma tarefa difcil, apesar do analista
possuir conhecimento sobre as ferramentas (SANTANA et al., 1994).
A avaliao de desempenho uma arte, pois algo que no pode ser feito
mecanicamente (JAIN, 1991). A avaliao de um sistema envolve conhecimento do sistema
modelado e uma seleo cuidadosa de metodologia, carga de trabalho e ferramentas. O problema
deve ser definido e convertido para uma forma em que as ferramentas e tcnicas existentes
possam ser usadas, considerando uma srie de requisies (entre elas o tempo disponvel). Cada
analista tem seu estilo: dado o mesmo problema, podem-se escolher mtricas e mtodos de
avaliao diferentes. E, com os mesmos dados obtidos, pode-se chegar a concluses diferentes, e
at opostas (JAIN, 1991). As principais tcnicas para avaliar desempenho so tcnicas de
aferio e modelagem. As tcnicas de aferio podem utilizar benchmarks, monitoramento ou
coleta de dados diretamente no sistema. J as tcnicas de modelagem podem usar Redes de Petri
(FRANCS, 2000), Redes de filas e Statecharts (HAREL, 1987). Os modelos podem ser
17
resolvidos por simulao ou analiticamente (FRANCS, 1998). Muitas vezes usada uma
combinao dessas tcnicas.
A seguir sero explicados alguns fundamentos utilizados na avaliao desempenho.
3.3. Mtricas
Mtricas de desempenho so medidas ou critrios para avaliao de desempenho (JAIN,
1991).
Do ponto de vista de um usurio, a principal mtrica o tempo de resposta, que o
intervalo entre o fim de um pedido e o fim da resposta correspondente, sendo essa a definio
usual, embora se possa considerar tambm o incio da resposta.
Do ponto de vista do sistema, a principal mtrica o throughput6: o nmero mdio de
pedidos processados por unidade de tempo.
Para CPU7s, o desempenho medido em MIPS (Milhes de Instrues por Segundo) ou
MFLOPS (Milhes de Operaes de Ponto Flutuante por Segundo). importante ressaltar que
Velocidade com que um computador processa dados. uma combinao da velocidade de processamento interno,
velocidade dos perifricos (I/O) e eficincia do sistema operacional e outros Software do sistema, todos funcionando
juntos.
7
Unidade central de Processamento.
18
no faz sentido comparar MIPS em diferentes arquiteturas de CPU, por exemplo, RISC 8e CISC
9
segundo). Observa-se que o tempo de resposta obtido com o throughput mximo pode ser alto
demais para ser aceitvel. O ponto timo de uma aplicao encontrado com o clculo
throughput versus tempo de resposta. o ponto alm do qual o tempo de resposta aumenta
rapidamente com a carga, mas o ganho em thoughput pequeno. O throughput mximo
alcanvel sob condies ideais de carga de trabalho chamado de capacidade nominal do
sistema; para redes, isso denominado bandwidth10. A razo da capacidade utilizvel
(throughput mximo alcanvel sem exceder um limite de tempo de resposta pr-especificado)
para a capacidade nominal chamada de eficincia.
A taxa de utilizao de um recurso determinada pela porcentagem de tempo que o
recurso est ocupado, para determinada carga (SANTANNA, 2004). O recurso do sistema que
primeiramente atingir 100% de utilizao, o que ficar saturado em primeiro lugar, chamado de
gargalo. A otimizao no desempenho desse recurso a que oferece o maior retorno em termo de
investimento. Por isso, achar a utilizao de recursos no sistema uma parte importante na
anlise global.
Outras medidas de desempenho que devem ser citadas so:
Confiabilidade: medida pela probabilidade de erros ou tempo mdio entre erros;
Disponibilidade: frao de tempo que o sistema est disponvel para utilizao;
19
3.4.2 Monitoramento
Um monitor uma ferramenta usada para observar as atividades em um sistema (JAIN,
1991). Em geral, os monitores observam o desempenho de sistemas, coletam estatsticas de
desempenho, avaliam os dados, e mostram resultados. Alguns tambm identificam reas de
problemas e sugerem solues. Alguns exemplos de utilizao de monitores so:
Um gerente de sistemas pode usar um monitor para medir as utilizaes de recursos e
achar o gargalo, ou tambm para ajustar os parmetros do sistema visando melhoria
no desempenho.
Um analista pode fazer um monitoramento para caracterizar a carga de trabalho,
sendo os resultados usados para planejamento de capacidade ou para criar cargas de
trabalho para testes.
Um programador pode usar o monitor para achar os segmentos do software
freqentemente usados e otimizar seu desempenho.
Os monitores so classificados com base em caractersticas como nvel de
implementao, mecanismo de disparo e capacidade de apresentar resultados. Considerando o
nvel de implementao podem-se ter monitores de hardware, software, ou hbridos.
Os monitores de software so usados para monitorar sistemas operacionais e softwares de
nvel mais alto como redes e bases de dados. Em cada ativao vrias instrues so executadas
e em geral provocam sobrecarga maior que os monitores de hardware.
Os monitores de hardware so dispositivos de hardware especficos para coletar e
avaliar dados do objeto em estudo. No devem ser intrusos em relao ao sistema. Os monitores
de hoje so inteligentes e programveis contendo seu prprio processador, memria e
dispositivos de I/O. Consistem de vrios elementos, como por exemplo: probes para observar
20
21
porque existem duas estruturas globais que so compartilhadas por todos processos: o relgio da
simulao e a lista de eventos.
Quanto escolha da linguagem de simulao, pode ser usada uma linguagem de
propsito geral, uma extenso dessa linguagem de propsito geral adaptada para simulao, uma
linguagem especfica para simulao ou ainda um pacote de simulao. Outras consideraes
comumente feitas em simulaes so verificar se a simulao atingiu um estado permanente, o
tempo total da implementao da simulao, gerao de nmeros aleatrios e escolha de
sementes.
22
23
24
CAPTULO
4. Servidores Web
4.1. Consideraes Iniciais
Com o passar do tempo a World Wide Web tem sofrido um grande crescimento. No so
apenas milhes de novos navegando na Web a cada dia, tambm h centenas de novos web sites
que so adicionados diariamente (WELLS, 2001). Logo, h o crescimento no nmero de
servidores (i.e., HTTP) Web. Com isso, os vendedores de servidores web tem orgulho em
enaltecer os atributos de seus produtos, e caractersticas de fabricao baseadas em teorias em
como tornar o servidor web rpido. Entretanto, essas virtudes e teorias so geralmente baseadas
em evidncias erradas, instinto, ou limitadas evidncias empricas que so pouco teis
(SLOTHOUBER, 1995).
Por esse fato que necessrio conhecer todos os tipos de aplicaes possveis que um
servidor web pode receber e caractersticas importantes. A partir da ser possvel anteceder as
possveis requisies e obter o melhor rendimento possvel do hardware.
Ao longo deste captulo sero mostrados: as caractersticas tcnicas do hardware, em
especfico para suprir necessidades de requisies HTTP, tipos de arquiteturas de servidores
web; e caractersticas de aplicaes prprias para os servidores web.
25
ocorrer na rede devido ao congestionamento dos roteadores da Internet, tanto como na Web e nos
servidores de banco de dados, ou pior ainda, por causa da capacidade limitada de atendimento ou
surgimento de uma requisio inesperada. A soluo do problema das redes tem sido mais
facilmente resolvido, tendo em vista a velocidade com que as capacidades de banda crescem, j
os problemas relacionados aos servidores web tornam-se mais difceis pela menor velocidade de
desenvolvimento de seus componentes (COFFMAN, 2001). O aumento da capacidade das redes
por si s no resolve o problema de QoS,mas comumente transfere o problema para dentro dos
servidores web, uma vez que eles se tornam o gargalo.
A seguir sero apresentados alguns tipos de documentos suportados pelos servidores web
e sua particularidades.
26
27
28
29
30
comercial necessria uma qualidade de servio em nvel de aplicao. Ou seja, uma transao
de sucesso aquela que atende toda a seqncia de requisies.
11
Programa em execuo num computador servidor e est sempre pronto para receber solicitaes de outros
programas, executar determinada ao e retornar a resposta adequada.
31
Figura 4.4 - Um servidor HTTP de um processo por conexo com um processo mestre.
Como tempo, foi utilizado apenas um processo por servidor web, mas esse processo era
composto por mltiplas threads, como pode ser visto na figura 4.5 (TANENBAUM, 1995).
Nessa abordagem, como visto, as threads ao estarem prontas utilizam o mtodo accept para
tratar uma requisio que fica em uma fila de espera de requisies TCP. Essa abordagem a
mais usada atualmente.
32
buffer de rede, se disponvel, para ser enviado ao cliente. importante dizer que se o arquivo for
maior que o buffer a ser utilizado, deve ser fracionado com o tamanho do buffer o nmero de
vezes necessrias e todas as partes devem ser enviadas pelo mesmo buffer, dessa forma alocando
um buffer at o trmino do envio.
nessa fase que as requisies dinmicas so redirecionadas ao script engine para
execuo dos scripts. Os scripts engines so servidos por threads e tem o desempenho atrelado
implementao do servidor web e do sistema operacional.
Aps o processamento no script engine, as requisies sofrem o mesmo procedimento de
carregamento de buffers que as requisies estticas.
33
34
CAPTULO
35
36
37
38
5.3. W4Gen
O W4Gen resultado do estudo de (SILVA, 2006) do comportamento de vrios logs de
servidores web. No trabalho foram utilizados logs disponibilizados na internet e logs que j
foram objeto de estudo como: Cdmil (2005), Tum (2005), Copi (2005), Stanford (2005), Veenet
(2005) e Connectmed (2005). Alm desses, foram utilizados os logs do CISC (Centro de
Informtica de So Carlos) e Prefeitura de Londrina e do Br10, estes foram obtidos atravs de
intermediaes com pessoas responsveis pela administrao de servidores web da instituio e
da empresa.
Esses logs foram classificados em trs categorias: acadmico, notcia/informativo e
tradicional. Um site acadmico possui registros de usurios, servios de biblioteca por meio de
gerao de pginas dinmicas, reas estatsticas com informaes da instituio, alm das
pginas pessoais de professores e alunos. Os sites do tipo notcia/informativo incluem
informaes periodicamente atualizadas, como temperatura do dia, dados financeiros, notcias da
regio ou do mundo, uma rea restrita aos usurios cadastrados, propagandas por meio de
banners, download de arquivos, entre outras. J um site tradicional possui poucas atualizaes e
utiliza muitos recursos estticos. Essa ltima categoria inclui pginas pessoais e de empresas de
pequeno porte cujo objetivo simplesmente apresentar o seu perfil e os produtos aos clientes.
Atravs dos logs foi possvel fazer analises do intervalo de chegada dos diferentes tipos
de requisies12 e foram selecionadas distribuies que mais se aproximassem do intervalo de
chegada para esses tipos de requisies. Essas distribuies so: Weibull, Gamma e Lognormal.
12
Arquivos que foram requisitados: html, imagem, arquivos dinmicos, textos, documentos, scripts, udio, binrio e
vdeo.
39
Como resultado desse estudo o W4Gen capaz de gerar logs baseados nos trs tipos
definidos com intervalos de chegadas e nos tipos de requisies e tamanho dos arquivos
requeridos baseados nos logs estudados. A seguir so apresentadas as possveis configuraes
para a gerao da carga de trabalho da sees 5.3.1 at 5.3.5.
13
40
41
42
43
44
5.4. Simpack
SimPack originalmente uma coleo de ferramentas C++ (rotinas e programas) para
simulao de computadores. O propsito do SimPack prover a pessoas com uma idia inicial
simular um sistema. O propsito principal que atravs de uma viso ou uma idia se consiga
gerar um programa de simulao. SimPack foi utilizado em diversos estudos e trabalhos como:
BARBATO et al. (2005) e TEIXEIRA et al. (2004).
SimPack um conjunto de ferramentas que suportam eventos discretos de simulao.
SimPack era originalmente escrito na linguagem C, e atualmente existe a verso na linguagem,
Java. Atualmente a verso C foi depreciada e s ha atualizaes na verso Java. SimPack
disponibilizada via a licena Gnu Public License (GPL).
A biblioteca oferece 3 conjuntos de mtodos:
Escalonamento de eventos: Ncleo do SimPack lidam com a lista de eventos
futuros
o Sim.init inicia uma simulao discreta;
o Sim.schedule escalona um evento para ocorrer no futuro;
o Sim.next_event requisita o prximo evento da lista de eventos futuros;
o Sim.next_event_dup requisita todos os prximos eventos, com o mesmo
tempo, da lista de eventos futuros;
o Sim.cancel_event remove o primeiro evento com um item especificado
pelo evento da lista de eventos futuros;
o Sim.cancel_token remove o primeiro evento com um item especificado
pelo identificador token;
Alocao de recursos mtodos que tratam com as filas e os servidores que a
atendem
o Sim.create_facility cria uma fila e os servidores que a atendem
o Sim.request requisita um servio a uma fila;
o Sim.preempt causa preempo em uma fila;
o Sim.release libera a fila para um evento que est no topo da fila;
45
46
mdulos diferentes, cada mdulo responsvel por uma etapa do atendimento da requisio.
Neste modelo so levados em considerao: impactos de diferentes caractersticas de carga
inicial (gerada pelo W4Gen) e configurao de hardware e software do servidor. O modelo
baseia-se principalmente no trabalho de van der MEI et al., (2001). Para auxlio na simulao foi
utilizado do SimPack para manipular as filas e as requisies. Como parmetros do SimPack
foram utilizados como estrutura de dados LINKED e tipo de simulao ASYNC, assncrona.
No SWMAR so analisadas requisies dinmicas e estticas. O fluxos de transaes no
servidor web so descritos por um modelo de filas de sries, que consiste de quatro sub-modelos
que sero aqui denominados mdulos de 1 a 4. A forma como esses mdulos se integram
apresentada na figura 5.9.
A seguir os mdulos so apresentados individualmente de maneira detalhada.
47
48
49
50
dos parmetros do mdulo 2, onde o tamanho de fila pode ser adotado como infinito e o nmero
de threads referente ao nmeros de processos que atendem as requisies dinmicas. H
variaes de cenrios para este mdulo. Pode-se simular o script engine na mesma mquina onde
o servidor web est operante ou possvel que o processamento de requisies dinmicas
ocorram em outra mquina.
51
Neste estgio o arquivo requisitado j est na memria e deve ser enviado para o buffer
de dados e depois, ser enviado para a interface de rede, como mostrado na figura 5.14. Nesta
operao importante notar que o tamanho do arquivo pode ultrapassar o tamanho do buffer de
dados. Sendo assim, deve haver um trabalho extra em dividir esse arquivo em tamanhos iguais
ao tamanho do buffer e calcular o checksum destas partes para que o arquivo enviado seja
exatamente o arquivo que foi requisitado. Essa operao de diviso descrita a seguir.
Esvaziamento
de Buffer
Documento
Requerido
Nmeroenvios
Quebra
arquivo
Buffers
Nmero envios
Tamanhoarquivo
.
.
.
Tamanhobuffer
Um fato importante que ao eleger um buffer para enviar o arquivo, o mesmo deve ser
enviado todo utilizando o mesmo buffer. Dessa forma, o buffer fica dedicado a um mesmo
arquivo enquanto o mesmo est no sistema. O nmero de vezes que o arquivo precisa ser
particionado obtida por meio da equao apresentada na figura 5.14. Isto , o nmero de envios
necessrios igual ao topo da diviso do tamanho do arquivo pelo tamanho do buffer.
52
Manipulao da requisio
Nessa etapa as requisies so manipuladas e encaminhadas para o processamento. Esse
tempo iniciado aps o estabelecimento com o usurio e termina quando a requisio foi tratada
e est pronta para ser processada.
Processamento da requisio
o tempo gasto com o processamento da requisio. Esse tempo envolve o tempo gasto
com a leitura da URL14 e o tempo gasto para mover o arquivo requerido da memria principal ou
do disco para a interface de rede.
Escrita em log
Para toda operao realizada gerado um log com os dados relativos ao cliente e a
requisio efetuada. Essa etapa a que captura o tempo gasto para tal tarefa. O log escrito logo
aps a transferncia do arquivo para a interface de rede.
Toda a vez que uma requisio passa por um mdulo preciso calcular qual o tempo
gasto no mesmo. Para isso foi implementado um mtodo que calcula esse tempo baseado nos
parmetros de hardware, do software (servidor web) e tamanho do arquivo que foi requisitado.
14
53
Baseado nesses dados foi possvel estimar os tempos para os quatro mdulos propostos
nesta dissertao. A seguir so apresentados os clculos de tempo de servio em cada mdulo.
Mdulo 1
Dos parmetros iniciais utilizados para gerar uma simulao no SWMAR o CPU o
nico recurso computacional utilizado, para gerar o tempo de utilizao. Por se assemelhar muito
com a etapa de manipulao de requisio de Almeida et al, (2000) foram utilizados os
resultados do trabalho para gerar os tempos para a simulao.
Almeida et al, (2000) executa requisies divididas em trs classes de requisies
estticas feitas por 30 clientes. A diferena entre essas classe baseada no tamanho dos arquivos
requisitados. Em seu trabalho foram obtidos os seguintes tempos:
Tamanho de arquivos
Classe 1
At 12,1KB
Classe 2
Entre 12,1KB e 2,3MB
Classe 3
Maiores 2.3MB
Tempo (ms)
6,20
21,80
23,45
Nesse clculo o MipsBase possui o valor de 102 Mips e o valor de MipsAtual um valor
inserido pelo parmetro machine.cpu com esse valor de FatorCPU e os tempos obtidos no trabalho
de Almeida et al, (2000) possvel obter os tempos de utilizao no mdulo 1. Esses tempos so
obtidos com os clculos abaixo.
15
54
Com esse clculo possvel encontrar os tempos gastos no mdulo 1 de acordo com o
tamanho dos arquivos requeridos.
Mdulo 2
Neste mdulo utilizado apenas o tempo de transferncia do arquivo do disco para a
memria principal. Como dito anteriormente, no foram considerados outros recursos de
hardware porque essa operao utiliza o DMA. Para o clculo desse tempo utilizado o tempo
de transferncia de disco pois, apesar de ser mais lento que a memria um limitante da
transferncia (BINKERT, 2003). O clculo do tempo dado por:
Mdulo 3
Em nenhum dos trabalhos analisados h uma medida baseada nas requisies dinmicas.
No entanto, em (SantAnna et al. 2004) dito que em mdia esse tempo de 2ms. Mas esse
tempo pode variar muito dependendo do processador utilizado no sistema. Por se tratar de uma
operao que no possui interdependncia com outras operaes foi utilizada uma distribuio
exponencial que segundo (JAIN, 1991) modela bem a utilizao de um CPU. Esse tempo foi
encontrado segundo a frmula abaixo:
55
e x,x
0 ,x
f ( x, )
0
0
Mdulo 4
Devido a caracterstica de separao do arquivo em tamanhos de buffers para envio para
a placa de rede utilizado a CPU para fazer o particionamento do arquivo quanto o barramento
de PCI para o envio das partes para a interface de rede. Esse mdulo descreve a operao de
processamento de requisio de Almeida et al, (2000). Em Almeida o tempo gasto para essa
etapa dado pela tabela.
Classe 1 Classe 2 Classe 3
Tempo de CPU no
Processamento de
Requisio
0.01875
0.15056
2.23135
56
disso, foi possvel calcular o tempo gasto para enviar mltiplas partes de um mesmo arquivo at
a interface de rede segundo a frmula abaixo:
Os parmetros de software so na maioria de dois tipos: length que insere o valor da fila
de requisies de cada mdulo e o parmetro threads que insere o nmero de threads que
57
atendem cada mdulo. No mdulo 1 esses valores so utilizados com os valores padro do
APACHE que so 511 espaos na fila de requisio e 10 threads no pool de threads. Nos
mdulos 2 e 3 h uma diferena no parmetro de length que infinito. O motivo de ser infinito
que garante que, uma vez que a requisio foi atendida no mdulo 1, essa requisio no ser
rejeitada por falta de espao na fila de requisies. Alm do parmetro length h o parmetro
threads que nos mdulos 2 e 3 tambm diferenciado porque h apenas um recurso
computacional que atende esse mdulos, o DMA, e porque apenas um operador que executa as
requisies dinmicas.
O mdulo 4 possui, alm dos parmetros length e threads o parmetro buffer-size que
controla o tamanho do buffer que utilizado para transferir os arquivos para a placa de rede.
Os parmetros de hardware so aqueles que influenciam diretamente no quesito mquina
a ser simulada. Esses parmetros influenciam diretamente nos tempos gastos na execuo de
tarefas em cada um dos mdulos. So eles:
machine.mips=102
machine.pci.speed=104857600
machine.disk.speed=16777216
machine.memo.size=16777216
machine.disk.size=37748736
58
16
59
60
CAPTULO
6. Anlise de Resultados
6.1. Consideraes Iniciais
No captulo anterior foi discutido o SWMAR, um simulador de servidor web que possui
quatro mdulos de abstraes de componentes internos. Foram mostradas caractersticas de
implementao e outros trabalhos que auxiliaram no desenvolvimento (W4Gen e SimPack). O
objetivo desse captulo validar o simulador proposto e verificar a sua adequao para a
avaliao de desempenho. Alm disso, pretende-se com este captulo mostrar quais as possveis
formas de se utilizar o simulador desenvolvido. Diante disso, neste captulo sero apresentados
os cenrios e os testes realizados.
61
simulado um disco rgido logo, nesse caso foi utilizado apenas uma thread no parmetro
machine.threads e o tamanho da fila (machine.length) infinito porque uma vez que a requisio
atendida por esse mdulo no h recusa. Os mesmos valores foram utilizados no mdulo 3. No
mdulo 4 foram utilizados, alm do valor do tamanho da fila, valores relacionados a buffer, o
tamanho do buffer e a quantidade de buffers que atendem esse mdulo, respectivamente infinita,
128 buffers de tamanho de 40KB (SANTANNA, 2004).
Para testar o simulador com os parmetros descritos acima foram utilizados logs com
2000 requisies com sobrecarga de 20%. A opo de parada por nmero de requisies foi
escolhidas porque, se escolhida a gerao de logs por tempo haveria uma diferena no nmero de
requisies consideradas em cada cenrio simulado e a comparao do throughput obtido para os
diferentes tipos de logs (tradicional, acadmico e informativo/notcias) ficaria prejudicada. Na
figura 6.1 so apresentadas as caractersticas das cargas iniciais baseadas nos nmeros de objetos
existentes em cada log.
Caractersticas dos Logs
1200
Requisieses
1000
800
Tradicional
600
Academico
Informativo
400
200
0
image
html
binary
dynamic document
video
text
script
audio
Na figura 6.1 os objetos foram ordenados de acordo com o maior nmero de objetos do
tipo tradicional, foi feita essa ordenao para que se observe a caracterstica de cauda pesada
nesse tipo de log e tambm para que se possa analisar as diferenas entre os demais tipos de logs.
Por exemplo, possvel observar que h mais imagens no tipo tradicional seguindo a lgica
explicada anteriormente (possui muitas pginas estticas com informaes e figuras). No tipo
acadmico o nmero de documentos requisitados muito superior aos outros tipos de logs, j no
62
1421
1369
1400
1275
Requisies
1200
Atendimento
1000
800
memria cheia
724
631
578
600
falta buffers
400
200
1
0
Tradicional
Acadmico
Informativo
63
Sendo assim foram feitas provas com a alterao dos parmetros do mdulo 1 para
analisar quais so os resultados obtidos. Para essas novas provas foram criados mais trs
cenrios.
Utilizao dos mdulos
Porcentagem de Utilizao
100,00
90,00
80,00
70,00
60,00
Tradicional
50,00
Acadmico
40,00
Informativo/Notcia
30,00
20,00
10,00
0,00
Utilizao
Mdulo 1
Utilizao
Mdulo 2
Utilizao
Mdulo 3
Utilizao
Mdulo 4
modulo1.length
modulo1.threads
1999
Requisies
2000
1500
1000
Atendimento
1334
1275
memria cheia
Fila cheia mdulo 1
724
falta buffers
665
500
1
1 0 0
Cenrio 1
Cenrio 2
1 0 0
Cenrio 3
Cenrio 4
64
Log Acadmico
2500
2000
2000
Requisies
2000
1530
Atendimento
1369
1500
memria cheia
Fila cheia mdulo 1
1000
falta buffers
631
470
500
0
0 0 0
Cenrio 1
Cenrio 2
0 0 0
Cenrio 3
Cenrio 4
Log Informativo/Notcias
2500
1998
Requisies
2000
1998
1720
Atendimento
1421
1500
memria cheia
Fila cheia mdulo 1
1000
falta buffers
578
500
280
1
2 0 0
Cenrio 1
Cenrio 2
2 0 0
Cenrio 3
Cenrio 4
Nas figuras 6.4, 6.5 e 6.6 so apresentados resultados que, a princpio , provam que
aumentar o tamanho da fila de requisies a melhor sada para aumentar o nmero de
requisies atendidas por esse servidor web. Entretanto, mesmo aumentando o tamanho de fila
no possvel garantir que todas as requisies sejam atendidas, como pode ser observado ,
comea a surgir recusas por falta de memria.
Outra caracterstica que, devido os valores de hardware no serem alterados, os valores
de tempo total (medido em segundos) de atividade das simulaes no sofrem grandes alteraes
e o troughput (medido em KBps) s recebe um ganho porque esto sendo atendidas mais
requisies at o fim da simulao, como pode ser observado nas figuras 6.7, 6.8. Na figura 6.9
65
495,44
495,44
449,63
400,00
throughput
307,32
300,00
tempo total
200,00
132,03
100,00
132,03
132,03
132,03
0,00
Cenrio 1
Cenrio 2
Cenrio 3
Cenrio 4
Throughput - Acadmico
1200,00
1085,75
1071,87
1000,00
816,76
800,00
throughput
600,00
tempo total
400,00
325,37
200,00
0,00
53,04
Cenrio 1
58,38
Cenrio 2
59,06
Cenrio 3
58,08
Cenrio 4
66
Throughput - Informativo/Notca
600,00
500,00
495,60
486,18
400,00
300,00
200,00
338,09
323,92
throughput
tempo total
248,30
226,03
179,95
176,37
100,00
0,00
Cenrio 1
Cenrio 2
Cenrio 3
Cenrio 4
17
Serial ATA.
67
atendidas. Foi inserido o cenrio 1 para que fosse feita uma comparao com os resultados
obtidos nos outros cenrios.
Log Tradicional
1400
1275
1275
1266
1275
1266
1200
Requisies
1000
Atendimento
800
733
724
724
733
724
memria cheia
Fila cheia mdulo 1
600
falta buffers
400
200
1
0
Cenrio 1
Cenrio 5
Cenrio 6
Cenrio 7
Cenrio 8
Figura 6.10 Resultado de alterao dos parmetros de hardware para log tradicional.
Log Acadmico
1600
1369
1400
1369
1368
1369
1368
Requisies
1200
Atendimento
1000
800
memria cheia
631
632
631
631
632
600
falta buffers
400
200
0
0
Cenrio 1
Cenrio 5
Cenrio 6
Cenrio 7
Cenrio 8
Figura 6.11 Resultado de alterao dos parmetros de hardware para log acadmico.
Log Informativo/Notcia
1600
1421
1421
1411
1421
1411
1400
Requisies
1200
Atendimento
1000
memria cheia
800
600
588
578
578
588
578
falta buffers
400
200
1
0
Cenrio 1
Cenrio 5
Cenrio 6
Cenrio 7
Cenrio 8
Figura 6.12 - Resultado de alterao dos parmetros de hardware para log informativo/notcias.
68
Apesar disso possvel verificar que sim houve uma diminuio dos mdulos com o
aumento da capacidade dos hardwares como pode ser observado na figura 6.13, 6.14 e 6.15. A
melhora mais expressiva no mdulo 3, nos cenrios que a capacidade da CPU aumentada.
35,00
33,10
33,00
40,00
34,25
Util Mdulo 1
25,00
Util Mdulo 2
Util Mdulo 3
11,28
15,00
11,41
20,00
11,45
Porcentagem
30,00
Util Mdulo 4
0,08
1,89
1,46
0,73
2,00
0,10
2,00
1,88
0,08
0,06
1,64
0,55
5,00
2,00
1,88
10,00
Cenrio 1
Cenrio 5
Cenrio 6
Cenrio 7
Cenrio 8
0,00
92,61
91,73
100,00
92,99
90,00
70,00
Util Mdulo 1
60,00
Util Mdulo 2
50,00
Util Mdulo 3
40,00
Util Mdulo 4
Cenrio 6
0,27
0,11
6,76
0,57
4,00
0,11
Cenrio 5
0,00
Cenrio 7
Cenrio 8
3,85
2,00
0,27
3,73
6,49
1,33
Cenrio 1
3,83
1,99
10,00
5,81
20,00
5,81
30,00
5,63
Porcentagem
80,00
73,80
80,00
74,20
75,99
70,00
Util Mdulo 1
50,00
Util Mdulo 2
40,00
Util Mdulo 3
30,00
Cenrio 1
Cenrio 7
0,04
0,06
2,98
0,45
Cenrio 6
9,16
Cenrio 5
0,88
1,98
0,88
0,11
0,00
0,04
1,98
3,10
0,82
0,88
1,98
10,00
9,31
Util Mdulo 4
20,00
9,32
Porcentagem
60,00
Cenrio 8
69
30
9,
18
30
7,
32
30
7,
32
44
6,
76
49
5,
44
30
9,
17
300,00
30
7,
32
400,00
44
9,
63
49
5,
44
500,00
throughput
200,00
100,00
0,00
Ce
n
rio
1
Ce
n
rio
2
Ce
n
rio
3
Ce
n
rio
4
Ce
n
rio
5
Ce
n
rio
6
Ce
n
rio
7
Ce
n
rio
8
Ce
n
rio
9
600,00
70
34
0,
24
200,00
throughput
32
7,
70
61
0,
98
600,00
61
0,
56
81
6,
76
800,00
400,00
10
47
,7
4
10
71
,8
7
1000,00
32
5,
37
1200,00
10
85
,7
5
Ce
n
rio
1
Ce
n
rio
2
Ce
n
rio
3
Ce
n
rio
4
Ce
n
rio
5
Ce
n
rio
6
Ce
n
rio
7
Ce
n
rio
8
Ce
n
rio
9
0,00
57
9,
84
500,00
100,00
32
4,
13
32
3,
92
32
3,
92
32
4,
13
throughput
17
9,
95
200,00
17
6,
37
300,00
24
8,
30
400,00
32
3,
92
600,00
Ce
n
rio
1
Ce
n
rio
2
Ce
n
rio
3
Ce
n
rio
4
Ce
n
rio
5
Ce
n
rio
6
Ce
n
rio
7
Ce
n
rio
8
Ce
n
rio
9
0,00
71
72
CAPTULO
7. Concluso
7.1. Consideraes Finais
A Web um sistema em crescimento que passou de um simples meio de publicao para
disseminar informaes, por meio do uso de pginas estticas, para uma infra-estrutura com
suporte a processamento de transaes, com uso de pginas dinmicas com acesso regular a
banco de dados e pginas personalizadas. Com essa evoluo, muitos esforos j foram e sero
dispendidos para melhorar o tempo de resposta das requisies dos usurios.
Dentre os diversos estudos, pode-se destacar o modelo de servidor web com
diferenciao de servios (SWDS), cujo objetivo oferecer uma arquitetura para o fornecimento
de servios diferenciados, integrando os princpios de QoS aplicados na camada de rede.
No entanto, a validao do modelo SWDS, executada por meio de simulaes usando o
trace da copa do mundo de 1998, no demonstrou sua viabilidade com base nas caractersticas
atuais, constituindo um comportamento antigo de uma poca onde o protocolo HTTP 1.1 e
requisies dinmicas eram pouco usadas. Ao longo desses ltimos anos, muitas tecnologias
mudaram, provocando uma mudana na demanda dos servidores web.
Com base nessa idia, a finalidade deste trabalho oferecer um modelo de servidor web
que possa integrar ao modelo do SWDS um modelo de servidor web que possui caractersticas
mais prxima de um servidor web real (SWMAR) substituindo o cluster de servidores web,
agregado as cargas de trabalho geradas pelo W4Gen. Assim, este trabalho proporciona a
integrao de vrios trabalhos j realizados e permite obter novos resultados mais confiveis e
mais realistas. Dentre os trabalhos desenvolvidos no grupo de Sistemas Distribudos e
Programao Concorrente do Instituto de Cincias Matemticas e de Computao da
Universidade de So Paulo que podem ser beneficiados, por meio de simulaes mais realistas,
utilizando-se o simulador desenvolvido neste trabalho vale ressaltar:
73
7.2. Contribuies
A maior contribuio deste projeto de mestrado foi desenvolver um modelo e o
respectivo simulador de servidor web com abstraes de componentes internos que tratam as
requisies (SWMAR) cujo objetivo facilitar diversos estudo em andamento, visando
avaliao do desempeno da Web, aumentando a capacidade de anlise de diferentes cenrios com
diferentes configuraes de servidores web. O servidor desenvolvido flexvel e apresenta a
possibilidade de alterao no comportamento de um servidor web, por meio da alterao de
diferentes parmetros, tanto de software quanto de hardware do servidor. Por exemplo, pode-se
alterar a poltica de atendimento da fila de requisies de FIFO para uma poltica de prioridades
de maneira rpida graas aos mtodos disponveis pela biblioteca SimPack.
74
75
76
8. Referncias Bibliogrficas
ABDELZAHER, T. F.; LU, C. Modeling and Performance Controlo of Internet Servers. In.
Proceeding of the 39th IEEE, Dez. 2000.
ALMEIDA, J , M.; ALMEIDA, V.; YATES, D. Measuring the Behavior of a World-Wide Web
Server. 2000.
ARLITT, M. F.; WILLIAMSON, C. L. Web Server Workload Characterization: the search for
invaliants. In: Proceedings of ACM SIGMETRICS 96 . [S.I. : s.n.], 1996. p.126-37.
BANGA, G.; DRUSCHEL, P; MOGUI, J.C Better operating system features for faster network
servers. ACM Performance Evaluation Review, 1998, p. 23-30.
BERNERS-LEE, T.; MASINTER, L.; McCAHILL, M. Uniform Resource Locators, [S.I.], Dez.
1994. RFC 1738, IETF.
BINKERT, N. L., HALNOR, E. G., REINHARDT, S. K. Network-Oriented Full-System
Simulation using M5. In Workshop on Computer Evaluation using Commercial Workloads, Fev
2003.
CARDELLINI, V.; CASALICCHIO, E.; COLAJANNI, M.; YU, P. S. The State of the Art in
Locally Distributed Web-Server Systems. In: ACM Computing Surveys, 2002, v. 34, n. 2, p. 263311.
CERF, V. C.; KAHN, R. E. "A Protocol for Packet Network Interconnections", IEEE Transaction
on Communications, Vol. COM-22, No. 5, Mai 1974.
COFFMAN, K. G; ODLYZKO, A. M. Internet growth: Is there a Moores Law for data traffic?
In Handbook of Massive Data Set, 2001.
COMER, D. E. Internetworking with TCP/IP: Principles, Protocols and Architecture. 4.ed. [S.l.]:
Prentice Hall, 2000.
DEVLIN, B.; GRAY, J.; LAING, B.; SPIX, G. Scalability terminology: Farms, clones, partitions,
and pack: RACS and RAPS. Tech Rep. MS_TR-99-85, Microsoft Research, 1999.
DILLEY, J.; FRIEDRICH, R.; JIN, T.; ROLIA, J. Web server performance measurements and
modeling techniques, Performance Evaluation, 2000.
ESTRELLA, J, C,. Mecanismos de negociao no mdulo de controle de admisso da arquitetura
de servidor web com diferenciao de servios (swds). Qualificao (Mestrado) ICMC-USP, So
Carlos, 2005.
FIELDING, R. Hypertext Transfer Protocol -- HTTP/1.1, [S.I.], Jun. 1999. RFC 2616, IETF.
FRANCS, C. R. L. et al. Modelagem e Especificao Utilizando Redes de Petri e Statecharts.
Monografia (Notas Didticas) ICMC-USP, So Carlos, 2000.
FRANCS, C. R. L. Uma extenso estocstica para Statecharts. Dissertao (Mestrado), ICMCUSP, So Carlos, 1998.
GANDHI, N.; TILBURY, D. M.; DIAO, Y.; HELERSTEIN, J.; PAREKH, S. MIMO Control of a
Apache Web Server: Modeling and Controller Design. In Proceeding of the American Control
77
78
ICMC-USP.
SIMPSOM, W. The Point-to-Point Protocol (PPP), [S.I.], JuL. 1994. RFC 1661, IETF.
SLOTHOUBER, P. A Model OF Web Server Performance, 1995.
SOCOLOFSKY, T.; KATE, C. TCP/IP Protocol, [S.I.], Jan. 1991. RFC 1180, IETF.
TANENBAUM, A. Distributed Operating Systems. 3 ed. [S.I.] Prentice Hall, 1995.
TANENBAUM, A. S. Computer Networks. 4 ed. [S.I.]. Prentice Hall, 2002.
TEIXEIRA, M. A. M. Suporte a Servios Diferenciados em Servidores Web: Modelos e
Algoritmos. Tese (Doutorado) ICMCUSP, So Carlos, 2004.
van der MEI, R.; HARIHARAN, R.; RESSER, P. K. Web Server Performance Modeling.
Telecommunications Systems, v. 16, n. 3, p. 361-378, 2001.
WELLS, L.; CHRISTENSEN, S.; KRISTENSEN, L. M.; MORTENSEN, K. H. Simulation Based
Performance Analysis of Web Servers In: Proceedings of 9th International Workshop on Petri
Nets and Performance Models, PNPM'01 Aachen, Sept. 11-14 , 2001, Reinhard German and
Boudewijn Haverkort (eds.), IEEE, pages 59-68. 2001.
79