Académique Documents
Professionnel Documents
Culture Documents
AGENDA
Ecossistema Internet & Web; Desempenho do HTTP (1.0/1.1) O Apache Web Server Apache em sites de Alto Trfego; Consideraes Finais;
Introduo
Em 1989 Tim Berners-Lee inventou a WWW, cujo propsito foi ter uma infra-estrutura padro para o compartilhamento de informaes; Desde ento, a Web tem sido largamente usada para garantir independncia de plataforma; Atualmente, a Web est no centro da infra-estrutura de TI das organizaes; Um dos principais componentes desta infra-estrutura o Web Server;
Ecossistema WEB
As regras desta comunicao esto definidas no protocolo HTTP (L7); A formatao dos dados que trafegam entre Browser e Web Server realizada pela linguagem HTML; Outros elementos j fazem parte deste Ecossistema (BD, AppServer, LB, outros).
Ecossistema Web
INFRAESTRUTURA 2-Tier
Ecossistema Web
INFRAESTRUTURA 2-Tier
Internet Link Web Server Dial-up, xDSL, FR, ... HTTP SQL Database
Ecossistema Web
INFRAESTRUTURA 3-Tier
Internet Link Web Server Dial-up, xDSL, FR, ... HTTP SQL HTTP(S), (S)RMI, CORBA, outros App Server Database
Ecossistema Web
INFRAESTRUTURA n-Tier + HA
Internet Link Web Server App Server Farm Farm HTTP SQL HTTP(S), (S)RMI, CORBA, outros Database Farm
Performance na Web
Entregar o contedo solicitado dentro de um tempo de resposta aceitvel para a quantidade de clientes planejada; Aceitvel => 15 seg. (Nielsen/Netratings); 12 seg. (Keynote Systems Inc.); A taxa de resposta (req/seg) outra mtrica interessante para avaliar o desempenho de servidores Web; Os objetivos do seu Web Site determinaro sua necessidade de performance/escalabilidade.
Performance na Web
Tempo de Resp. (seg.) EddieBauer 9,26 WebSite OfficeDepot Amazon WalMart BestBuy JCPenny Costco OfficeMax Target Sears 10,07 11,46 14,64 14,96 15,21 15,80 20,62 23,27 23,45
Performance na Web
Tcnicos:
Canal/Link de comunicao (bandwidth); Hardware (Processador, Memria, Discos, NIC, ...) Software (SO, Web Server, CGI/SSI, BD, FW, ... ) Contedo (Esttico, Dinmico, Imagens, Vdeo, ...)
A comunicao na Web baseada no protocolo HTTP; Este segue um modelo client/server; Ambas as verses so baseadas no modelo client/server; Relacionado a performance, as principais melhorias introduzidas na verso 1.1 foram:
WEB SERVER
Estabelecimento de Conexo TCP
ACK(S YN (b) )
Sesso HTTP
) FIN(a
Fig1.png
logo.jpg
Browser
TCP SYN HTTP GET TCP FIN TCP SYN HTTP GET
logo.jpg
TCP FIN TCP SYN HTTP GET
Fig1.png
TCP FIN
Web Server
artigo.html S
TCP FIN
logo.jpg F F
Fig1.png
Browser
TCP SYN HTTP GET
Web Server
artigo.html
HTTP GET
logo.jpg
HTTP GET
Fig1.png
TCP FIN
Browser
TCP SYN
HTTP GET
Web Server
artigo.html
HTTP GET ( logo.jpg ) HTTP GET ( fig1.gif )
logo.jpg Fig1.png
TCP FIN
Outros exemplos...
RH 9, Mozilla 1.4.3, http://www.apache.org
[root@devel]# netstat -n Active Internet connections (w/o servers) Proto Recv-Q Send-Q Local Address tcp 0 0 192.168.1.2:32799 tcp 0 0 192.168.1.2:32798 Foreign Address 209.237.227.195:80 209.237.227.195:80 State ESTABLISHED ESTABLISHED
Outros exemplos...
RH 9, Mozilla 1.4.3, http://www.ufsc.br - 4 conexes.
[root@devel]# netstat -n Active Internet connections (w/o servers) Proto Recv-Q Send-Q Local Address tcp 0 0 192.168.1.2:32856 tcp 0 0 192.168.1.2:32857 tcp 0 0 192.168.1.2:32854 tcp 0 0 192.168.1.2:32855 Foreign Address 150.162.1.150:80 150.162.1.150:80 150.162.1.150:80 150.162.1.150:80 State ESTABLISHED ESTABLISHED ESTABLISHED ESTABLISHED
Outros exemplos...
Win2000 Prof., IE 6, http://www.uol.com.br
C:\>netstat -n Active Connections Proto Local Address TCP 192.168.1.2:1095 TCP 192.168.1.2:1096 TCP 192.168.1.2:1097 TCP 192.168.1.2:1099 TCP 192.168.1.2:1100 TCP 192.168.1.2:1104 TCP 192.168.1.2:1105 TCP 192.168.1.2:1107 TCP 192.168.1.2:1110 Foreign Address 200.221.7.37:80 200.221.7.37:80 200.221.7.37:80 200.221.7.38:80 200.221.7.38:80 200.221.7.38:80 200.221.7.38:80 200.221.8.115:80 200.221.8.115:80 State ESTABLISHED ESTABLISHED ESTABLISHED ESTABLISHED ESTABLISHED ESTABLISHED ESTABLISHED ESTABLISHED ESTABLISHED
Em Abril/1995 a primeira verso do Apache foi liberada, baseada no code base do NSCA httpd server v. 1.3; Esta release (v 0.7) incorporava muitos patches da comunidade para o cdigo do NSCA, de onde surgiu seu nome: A PAtCHy HTTPD um dos projetos da The Apache Software Foundation (http://www.apache.org); Atualmente ocupa o posto de Web Server mais usado na Internet (Netcraft, 2005).
Performance / Escalabilidade
At a verso 1.3, performance e escalabilidade no eram as principais prioridades do projeto; Apesar de ser o mais utilizado, o Apache no o Web Server mais performtico em termos de benchmarks !
Comparativo de Performance
Req/seg. x Conexes simultneas
Apache
Devido ao nmero de componentes envolvidos, certamente estes resultados so distantes da sua realidade; Realize os seus prprios testes !!!
Aspectos Arquiteturais
ver. 1.3:
Introduz o modelo de processos MPM (Multi-Processing Modules); Utiliza a system call sendfile(2) para envio e recebimento de contedo esttico (html, gif, jpg, pdf, ...); Suporta a system call mmap(2) para mapeamento de arquivos em memria;
Responsveis por: Gerenciar as portas de comunicao, aceitar conexes, alocar threads/processos para atendimento das requisies; Possibilitam customizaes especficas para cada plataforma de SO (ex. mpm_winnt); Alternativas: prefork, perchild, worker, threadpool, leader, beos, mpmt_os2, outros....; Os MPMs perchild, leader e threadpool so experimentais, portanto inadequados para ambientes de produo.
worker
Pai
Filho1
Filho2
Filho3
Filhon
Filho1
Filho2
Filho3
Filhon
thr1 ... thrn thr1 ... thrn thr1 ... thrn thr1 ... thrn
Avaliao de Performance
Web Server: Dual PIII, 700MHz, 1 GB RAM, Solaris x86; Gerador de Carga: Configurao idntica ao Web Server; Contedo esttico: Arquivo de 1 KB. Instalao do httpd sem customizaes (out-of-box); A cada 30 segundos o nvel de concorrncia foi incrementado em 1.
CPU: (8) Pentium III-700MHz RAM: 9 GB Swap: 2 GB Red Hat 7.3 Web server: Apache httpd 2.0.47 Gerador de carga: WPT 1.9.4
No se preocupe com contedo esttico; As pginas dinmicas so/sero o seu gargalo !!!
Durao: 8 horas; Apache httpd: 2.0.46; Red Hat Enterprise Linux AS 2.0 (kernel 2.4.21); MPM prefork (200 processos httpd); Pginas de 196 Kbytes e Carga: 90%.
1:00
1:58
2:58
3:58
4:58
5:58
6:58
7:58
Fonte: palestrante.
E8 E7
Horas
RAM (MBytes)
0:00
1:00
1:57
2:57
3:57
4:57
5:57
6:57
7:57
Fonte: palestrante.
httpd 2.0.x;
Limite o nr. de processos / threads por servidor; Utilize mais de um servidor escalando horizontalmente:
DNS round robin; IP load balancer: LVS/IPVS, Red Hat Cluster Suite, Cisco Local Director, F5 BigIP, outros...;
Avalie a utilizao de um servidor especializado (ex. thttpd) para servir todo contedo esttico (ex. imagens, zip, pdf, etc.);
Planeje a infra-estrutura do seu servidor Apache, definindo os requisitos que devem ser atendidos:
No esquea de ser generoso ao planejar sua capacidade de memria RAM; A seguir, algumas recomendaes de configurao para o httpd.conf:
No httpd.conf:
EnableSendfile on
Evite o custo de criar e remover processos com frequncia, definindo MinSpare=MaxClients e MaxSpare=0
worker:
MinSpareThreads=MaxClients MaxSpareThreads=0
prefork:
MinSpareServers=MaxClients MaxSpareServers=0
MaxRequestsPerChild=0
50 50 500 500 0 10 0
KeepAlive On MaxKeepAliveRequests 0
killall -HUP httpd; (no recicla!) killall -9 httpd; httpd; (causa downtime) apachectl restart; (recicla c/zero-downtime!)
Concluses
Voc precisa entregar em 15 seg. ? Avalie os requisitos de capacidade do seu site; Comece definindo suas necessidades em termos de taxa/tempo de resposta e nr. de conexes simultneas; Use o log do Apache e outras medies para caracterizar a utilizao do seu site; Hands-on !
Obrigado !
RIVALINO@K4B.COM.BR RIVALINO@DEPS.UFSC.BR