Ajustando o tamanho do cache no Squid

Publicado por Anderson Oliveira em 31/12/2004

[ Hits: 57.915 ]

 


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:

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.

Outras dicas deste autor
Nenhuma dica encontrada.
Leitura recomendada

aMSN snapshot - para quem gosta de fortes emoções diariamente

Usando o RealPlayer em página HTML

Adobe Flash Player para Firefox 3.5.4 no BRLix

Iceweasel atualizado no Debian Wheezy - Repositório mozilla.debian

Faça você mesmo: antena para redes wireless

  

Comentários
[1] Comentário enviado por sigmanalo em 31/12/2004 - 01:58h

Ola 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

[2] Comentário enviado por lacierdias em 31/12/2004 - 10:45h

mano de uma olhada nisso e me diz oq vc acha....
http://www.underlinux.com.br/forum8-22869.html
Abraço

[3] Comentário enviado por timbeh em 28/10/2005 - 13:35h

apenas complementando o que significa a seguinte linha:
cache_dir ufs /var/spool/squid 192 20 384 , pois eu havia ficado em dúvida e encontrei o significado, e é representado por:

TIPO: Especifica o tipo de sistema para ser criado para armazenar os dados, por padrão ufs.
Nome_Diretório: É a raiz do diretório de cahce (/var/spool/squid)
Mbytes: Especifica a quantidade de espaço em disco ocupado por esse diretório, definido em MB (100)
Nível 1: Número de subdiretórios de primeiro nível (16)
Nível 2: Número de subdiretórios de segundo nível que será criado abaixo de cada subdiretório do nível 1 (256).


[4] Comentário enviado por josemircosta em 12/03/2006 - 21:13h

valeu

[5] Comentário enviado por kadu em 01/04/2011 - 10:01h

Olá Anderson Oliveira,

O cache_mem usa multiplos de 4 pois os objetos no cache são armazenados em grupos de 4KB.

http://www.squid-cache.org/Doc/config/cache_mem/

[]'s



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts