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.