segunda-feira, 9 de fevereiro de 2009

Squid - parte 06


Controle de banda


O squid oferece uam forma simples de gerenciar a banda disponível e definir o quanto cada usuário pode usar ( mantendo parte do link livre para os demais ), utilizando um recurso chamado “delay pools”. Imagine um link de 2 megabits para uma rede de 20 usuários. Se cada um puder ficar baixando o que quiser, é provável que a rede fique saturada em determinados horários, deixando a navegação lenta para todos usuários.


Pode-se evitar isso, limitando o uso da banda. É recomendado que o proxy (que combina todos os acessos via http) consuma um pouco menos do que a banda total, deixando uma parte para outros protocolos.


Um link de 2 mega (2048 kbits) corresponde a 262144 byes por segundo. Nas regras do squid, sempre usamos bytes por isso sempre temos que fazer a conversão.


Entendo a conversão


2 megabit são quantos bytes por segundo?


2048 k bits / s


2 megabit = 2048 kbits


agora em bytes


2 x 1024 = 2048 / 8 = 256 kbytes


Porque eu divido por 8?


Porque 1 byte = 8 bits


Mas eu quero em bytes...


256 kilobytes = 256 x 1024 bytes = 262144 bytes por segundo


O SQUID trabalha com bytes!!!


Como ficaria o cálculo para 3 megabits???


3 megabits = 3 x 1024 = 3072 / 8 = 384 kbytes x 1024 = 393216 bytes por segundo


Podemos então limitar a banda utilizada pelo squid em 229376



acl localhost src 127.0.0.1/255.255.255.255

acl rede_interna src 192.168.0.0/24


delay_pools 1

delay_class 1 2

delay_parameters 1 229376/229376 32768/32768

delay_access 1 allow rede_interna


http_access allow localhost

http_access allow rede_interna

http_access deny all


Eu reservei 229376 bytes por segundo para o Squid


Eu reservei 32768 bytes por segundo para outros protocolos


87% para o squid

13% para outros protocolos


A acl rede_interna está agora condicionada o três novas regras, que aplicam o uso do limite de banda. O acesso continua sendo permitido, mas agora dentro das condições especificadas na linha “delay_parameters 1 229376/229376 32768/32768”, onde vão os valores com a banda total disponível para o squid, e a banda disponível para cada usuário.


Observe que a regra só é aplicada a rede_interna atuando somente nas estações e não ao localhost (127.0.0.1) podendo assim fazer download na velocidade máxima permitida pelo link, quando acessado pelo servidor.


É possível também criar regras de exceção para determinados endereços, essas acl's não passarão pelo filtro de banda. Neste caso criamo uma acl com os endereços desejados.


acl localhost src 127.0.0.1/255.255.255.255


acl diretoria src 192.168.0.2

http_access allow diretoria


acl rede_interna src 192.168.0.0/24


delay_pools 1

delay_class 1 2

delay_parameters 1 229376/229376 32768/32768

delay_access 1 allow rede_interna


http_access allow localhost

http_access allow rede_interna

http_access deny all


Essa regras vale para as demais configurações vista acima, basta colocar a regras antes de qualquer acl,


acl diretoria src 192.168.0.2

http_access allow diretoria


Finalizando


# squid -k parse

# squid -k reconfigure


Obs: Evite usar “#/etc/init.d/squid restart” em ambientes em produção, pois ele força um reinício completo do squid, onde p proxy precisa finalizar todas as conexões abertas, finalizar todos os processos de desativar o cache, para só então ler a configuração e recarregar todos os componentes novamente. Isso faz com que o proxy fique um tempo sem responder as conexões, fazendo qom que o acesso fique fora do ar.


Obrigado pela atenção de todos, sugestões serão sempre bem vindas.


Até o próximo material


1 comentários:

Gilson Silva disse...

Cara muito bom me ajudou muito Obirgado mesmo !