P. 1
Webcast Lucasbrasilino Squid

Webcast Lucasbrasilino Squid

|Views: 54|Likes:
Publicado porWarmaster Voivode

More info:

Published by: Warmaster Voivode on Feb 15, 2012
Direitos Autorais:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PDF, TXT or read online from Scribd
See more
See less

06/14/2013

pdf

text

original

1

Otimizando o Proxy/Cache Squid

Lucas Brasilino brasilino@4linux.com.br

2 Agenda Squid internals: funcionamento seu design e forma de Parametrizações em tempo de compilação Parametrizações em tempo de execução Parametrizações da pilha TCP/IP do Linux Modalidades de I/O em cache de disco Otimizando o uso de memória .

Exemplos: dnsserver ulinkd redirectors Externals ACL. Pode utilizar threads em uma modalidade de I/ O para cache em disco . etc.3 Squid internals Projetado para ser um único processo Porém algumas funcionalidades são realizadas por processos externos.

4 Squid internals memPools replacement policy HTTP client-side Storage Manager storeclient replacement policy server-side HTTP FTP GOPHER Store API comm_loop .

/configure) Otimização do kernel do Linux (sysctl) .5 Tipos de otimizações Opções (tags) squid.conf no arquivo de configuração Opções  definidas  na  configuração  dos  fontes  para  compilação (.

6 Uso de descritores de arquivos Normalmente cada processo pode alocar no máximo 1024 descritores # ulimit ­n ● Este  valor  tende  a  ser  insuficiente  em  redes  de  extrema carga # squidclient mgr:info | grep “file desc” Maximum number of file descriptors:   8192 Largest file desc currently in use:   1430 Number of file desc currently in use: 1377 Available number of file descriptors: 6815 Reserved number of file descriptors:   100 .

7 Parametrização: número de descritores disponíveis para o Squid Aumente o número de descritores Configure os fontes: # ./configure ­­with­filedescriptors=8192 – Configure o ambiente (shell) que o squid será executado: # ulimit ­HSn 8192 && squid ­DY .

ipv4.tcp_max_syn_backlog=2048 net.ipv4.ip_local_port_range = 1024 65000 ● Aumente o backlog # sysctl net.ip_local_port_range = 32768  61000 # sysctl ­w net.ipv4.ipv4.8 Parametrização: pilha TCP/IP Aumente o número de portas locais disponíveis: # sysctl net.ipv4.ipv4.tcp_max_syn_backlog = 2048 .ipv4.tcp_max_syn_backlog = 1024 # sysctl ­w net.ipv4.tcp_max_syn_backlog net.ip_local_port_range net.ip_local_port_range="1024 65000" net.

Retorna tais descritores pro Squid.9 Loop principal: comm_loop Todos descritores possíveis são setados como assíncronos (non-blocking) É um loop chamando select(). O kernel define quais descritores estão prontos para serem  lidos ou escritos. . ou similares: São passados todos os descritores. exceto os referentes a  arquivos em disco.

10 Loop principal: comm_loop select()  é  conhecidamente  lento  ao  examinar  um  grande número de descritores. Uma alternativa plausível é utilizar poll() No Linux. utilize epoll() .

Unix File System Modalidade padrão Tais chamadas são síncronas (blocking) Baixa performance: 30 – 50 op/seg AUFS ­ Asynchronous Unix File System Utiliza threads para 'paralelizar' o acesso a disco Ideal em servidores SMP Boa performance: 150 – 200 op/seg .11 Modalidades de I/O para cache em disco UFS .

  apenas  para  'enfileirar'  e  executar as chamadas de acesso a disco.  é  a  modalidade  de  melhor  performance ao cachear pequenos objetos. . Boa performance: ~160 req/seg DISKD COSS ­ Cyclic Object Storage System  Armazena todos os objetos em um único arquivo Segundo  estudos  iniciais.12 Modalidades de I/O para cache em disco É  um  daemon  externo  ao  Squid.

/configure ­­enable­storeio='aufs' – Configure o squid.conf: cache_dir aufs /var/cache 10240 32 256 .13 Parametrização: modalidades de I/O Recomendação: AUFS Configure os fontes: # .

/configure –enable­storeio='aufs.14 Parametrização: modalidades de I/O Recomendação: AUFS + COSS Configure os fontes: # .coss' – Configure o squid.conf: cache_dir coss /var/cache/storage.img 100 max-size=102400 cache_dir aufs /var/cache 10240 32 256 .

Devemos evitar a todo custo que o sistema operacional  utilize o swap: # free ­m . Valor configurado em cache_mem. Aproximadamente de 10 a 20Mb adicionais.15 Uso de memória O Squid aloca o somatório de: 10Mb de RAM a cada 1Gb em cache_dir.

4 .conf.16 Parametrização: uso de memória É realizada configurando a opção cache_mem  no  arquivo squid. Recomenda­se  alocar  a  metade  da  memória  RAM  total  do servidor para o Squid: RAM−TotalMb cachedirMb cachemem= − −20 2 102.

O. fazer swap ! .17 Considerações finais Nunca deixe faltar descritores de arquivos ! Otimize o loop principal ! Use modalidades de I/O computacionalmente custosas ! menos Configure corretamente o uso de memória ! Não deixe o S.

com.18 Otimizando o Proxy/Cache Squid Obrigado!! Lucas Brasilino brasilino@4linux.-) .br Aguardo vocês no curso de Squid .

You're Reading a Free Preview

Descarregar
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->