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