Webcast Lucasbrasilino Squid

  • View
    57

  • Download
    0

Embed Size (px)

Text of Webcast Lucasbrasilino Squid

1

Otimizando o Proxy/Cache Squid

Lucas Brasilino brasilino@4linux.com.br

2

AgendaSquid internals: funcionamento seu design e forma de

Parametrizaes em tempo de compilao Parametrizaes em tempo de execuo Parametrizaes da pilha TCP/IP do Linux Modalidades de I/O em cache de disco Otimizando o uso de memria

3

Squid internalsProjetado para ser um nico processoPorm algumas funcionalidades so realizadas por processos externos. Exemplos:dnsserver ulinkd redirectors Externals ACL, etc.

Pode utilizar threads em uma modalidade de I/ O para cache em disco

4

Squid internals

memPools replacement policy HTTP client-side

Storage Managerstoreclient replacement policy

server-side

HTTP FTP GOPHER

Store API comm_loop

5

Tipos de otimizaesOpes (tags) squid.conf no arquivo de configurao

Opes definidas na configurao dos fontes para compilao(./configure) OtimizaodokerneldoLinux(sysctl)

6

Uso de descritores de arquivosNormalmente cada processo pode alocar no mximo 1024 descritores#ulimitn

Este valor tende a ser insuficiente em redes de extremacarga#squidclientmgr:info|grepfiledescMaximumnumberoffiledescriptors:8192 Largestfiledesccurrentlyinuse:1430 Numberoffiledesccurrentlyinuse:1377 Availablenumberoffiledescriptors:6815 Reservednumberoffiledescriptors:100

7

Parametrizao: nmero de descritores disponveis para o SquidAumente o nmero de descritoresConfigure os fontes:#./configurewithfiledescriptors=8192

Configureoambiente(shell)queosquidserexecutado:#ulimitHSn8192&&squidDY

8

Parametrizao: pilha TCP/IPAumente o nmero de portas locais disponveis:#sysctlnet.ipv4.ip_local_port_range net.ipv4.ip_local_port_range=3276861000 #sysctlwnet.ipv4.ip_local_port_range="102465000" net.ipv4.ip_local_port_range=102465000

Aumenteobacklog#sysctlnet.ipv4.tcp_max_syn_backlog net.ipv4.tcp_max_syn_backlog=1024 #sysctlwnet.ipv4.tcp_max_syn_backlog=2048 net.ipv4.tcp_max_syn_backlog=2048

9

Loop principal: comm_loopTodos descritores possveis so setados como assncronos (non-blocking) um loop chamando select(),ousimilares:Sopassadostodososdescritores,excetoosreferentesa arquivosemdisco; Okerneldefinequaisdescritoresestoprontosparaserem lidosouescritos; RetornataisdescritoresproSquid;

10

Loop principal: comm_loopselect() conhecidamente lento ao examinar um grandenmerodedescritores. Umaalternativaplausvelutilizarpoll() NoLinux,utilizeepoll()

11

Modalidades de I/O para cache em discoUFS - Unix File SystemModalidadepadro Taischamadassosncronas(blocking) Baixaperformance:3050op/seg

AUFSAsynchronousUnixFileSystemUtilizathreadspara'paralelizar'oacessoadisco IdealemservidoresSMP Boaperformance:150200op/seg

12

Modalidades de I/O para cache em disco um daemon externo ao Squid, apenas para 'enfileirar' e executaraschamadasdeacessoadisco; Boaperformance:~160req/seg

DISKD

COSSCyclicObjectStorageSystemArmazenatodososobjetosemumnicoarquivo Segundo estudos iniciais, a modalidade de melhor performanceaocachearpequenosobjetos;

13

Parametrizao: modalidades de I/O Recomendao: AUFSConfigure os fontes:#./configureenablestoreio='aufs'

Configure o squid.conf:cache_diraufs/var/cache1024032256

14

Parametrizao: modalidades de I/ORecomendao: AUFS + COSSConfigure os fontes:#./configureenablestoreio='aufs,coss'

Configure o squid.conf:

cache_dir coss /var/cache/storage.img 100 max-size=102400 cache_dir aufs /var/cache 10240 32 256

15

Uso de memriaO Squid aloca o somatrio de:10Mb de RAM a cada 1Gb em cache_dir; Valorconfiguradoemcache_mem; Aproximadamentede10a20Mbadicionais;

Devemosevitaratodocustoqueosistemaoperacional utilizeoswap:#freem

16

Parametrizao: uso de memria

realizada configurando a opo cache_mem no arquivosquid.conf; Recomendase alocar a metade da memria RAM total doservidorparaoSquid:

RAMTotalMb cachedirMb cachemem= 20 2 102,4

17

Consideraes finaisNunca deixe faltar descritores de arquivos ! Otimize o loop principal ! Use modalidades de I/O computacionalmente custosas ! menos

Configure corretamente o uso de memria ! No deixe o S.O. fazer swap !

18

Otimizando o Proxy/Cache Squid

Obrigado!! Lucas Brasilino brasilino@4linux.com.br Aguardo vocs no curso de Squid ;-)