Ajustando o tamanho do cache no Squid
Dica publicada em Linux / Internet
Ajustando o tamanho do cache no Squid
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:
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.
As vezes basta apenas prestar atenção nas respostas que nos foi dada, se voltar na sua pergunta podera notar que já havia falado isso aqui no quadro de respostas, e depois num e-mail privado mandado através do vivaolinux explicando claramente os passos a seguir.
De uma olhada no link:
http://www.vivaolinux.com.br/perguntas/verPergunta.php?codigo=17480
e procure no seus e-mails.
Com certeza esse problema estaria resolvido ha mais tempo.
Sem mais
Ivan Lucio da Silva