Dicas de linux



Dicas de linux

Ajustando o tamanho do cache no Squid

Dica enviado por Anderson Oliveira

Pessoal,

Recentemente tive problemas ao necessitar ajustar o cache do Squid ao volume de memória existente na máquina que estava utilizando.

De acordo com literaturas encontradas, a recomendação para o ajuste do cache no Squid é de 75% do volume de memória. Por exemplo, se você possui 256 MB de RAM, é recomendável que o cache de seu Squid tenha 192 MB.

Na instalação padrão, o valor do cache é de 8 MB (cache_mem 8MB).

Assim sendo, o que normalmente é feito, é adaptar o squid.conf para as regras que cada um julga coerente, determinando as acl´s necessárias para controlar o acesso e o funcionamento desejado.

O problema que enfrentei, que fizesse com que eu aumentasse o tamanho do cache, foi a necessidade de carregar uma lista de bloqueios muito grande, coletadas em uma biblioteca de "blacklists", já que o objetivo era poder bloquear o maior número de url´s que pudessem prejudicar a operação.

Desta forma, ao ajustar o valor do cache para o volume de memória que o meu servidor possuía, no exemplo acima, tive a seguinte mensagem de aviso (warning):

# service squid reload
2004/12/15 12:18:27| WARNING cache_mem is larger than total disk cache space!

Ao deparar com essa mensagem, fiquei preocupado, pois por experiência, tive problemas de instabilidade com o Squid nos momentos que o deixava trabalhar muito perto dos limites determinados nas configurações do squid.conf. Não encontrando um ponto de pesquisa, postei uma pergunta neste site, perguntando aos colegas o que poderia ser a razão desta situação. As respostas não foram as soluções que precisava, mas abriu o horizonte de, por acidente, encontrar a solução, que agora compartilho com todos.

A razão dessa mensagem, não é por causa do tamanho da partição do swap, mas por causa do tamanho do próprio cache do Squid, definido fisicamente pelo parâmetro original de:

cache_dir ufs /var/spool/squid 100 16 256

Esse parâmetro é, na verdade, o tamanho que o cache do Squid pode chegar, mesmo que a memória designada para ele não seja o volume total. No entanto, o valor da memória NÃO pode exceder ao tamanho físico do cache, razão esta a mensagem acima, quando dos 48MB que eu havia determinado inicialmente, ao passar para 128Mb, tive a mensagem de aviso.

Ao modificar o valor deste parâmetro, deve-se seguir o critério de que o espaço em disco alocado é baseado em valores múltiplos de 4 e, portanto, é aconselhável seguir esse critério (não questione o por quê, eu também não questionei, apenas segui a orientação).

Então, o valor adotado para a minha necessidade, haja visto, que para poder aumentar o volume de memória, sou também obrigado a aumentar o tamanho do diretório de cache, assim sendo, ficou:

cache_dir ufs /var/spool/squid 192 20 384

É recomendável ainda, que pare o serviço do Squid:

# service squid stop

E que ajuste fisicamente o tamanho do diretório, com o comando:

# squid -z

Feito isso, poderá iniciar o Squid novamente sem problemas e certo de funcionar com o valor necessário para poder aumentar o volume de memória do Squid pelo parâmetro "cache_mem" .

Boa sorte à todos.

Abraços,
Anderson.


www.dicasdelinux.com.br - Dicas de Linux para te ajudar no Dia-dia "Seja livre! Acesse dicas de linux."