Squid - Calculando cache_dir e cache_mem

Publicado por Jeferson R. Costa em 24/05/2013

[ Hits: 26.805 ]

Blog: http://www.jefersonrc.com.br/

 


Squid - Calculando cache_dir e cache_mem



Este final de semana, resolvi estudar um pouco algumas maneiras de melhorar o processamento do Squid e descobri que, alterando somente alguns parâmetros, podemos aumentar consideravelmente a velocidade de navegação para o usuário final.

No meu caso, tinha um servidor proxy com 4 GB de memória disponíveis para o Squid e alguns outros serviços, e estava utilizando somente 300 MB, ou seja, tinha recursos mas por não saber calcular muito bem o cache_mem e cache_dir, acabei inserindo valores equivocados, comprometendo e desempenho da Internet dentro da minha rede.

Um detalhe muito importante que devemos nos atentar para o nosso cálculo, é que em sistemas 32 bits, para cada GB de HD destinado ao cache, o Squid consome 10 MB de memória RAM e para sistemas 64 bits, para cada GB de HD destinado ao cache, o Squid consome 16 MB de memória RAM.

Exemplo:

- Temos um GNU/Linux 32 bits, com o parâmetro cache_dir setado em 10 GB, sendo assim, nosso Squid consumirá 100 MB de memória RAM somente para processar o cache.

- Se tivermos a mesma quantidade setada no cache_dir de um Squid rodando em um sistema 64 bits, teríamos 160 MB de memória RAM consumido pelo Squid para a mesma tarefa.

Vamos, então, fazer os cálculos, levando em consideração os seguintes recursos do nosso servidor imaginário:
  • 4 GB de memória RAM.
  • 20 GB para a partição /squid destinada exclusivamente para o Squid.
  • Debian x64.
  • Disponibilidade de uso de 2 GB de memória RAM somente para o Squid, deixando o restante para o sistema e demais serviços.

Temos, então, 20 GB dedicado para o nosso cache, porém, recomendo que deixe 20% deste total para que fique livre, sendo assim, usaremos somente 16 GB, ficando da seguinte maneira o nosso cálculo:

16 * 16 = 256 MB + 20 MB de gordura = 276 MB + 1724 MB = 2 GB

No "squid.conf", o nosso cache_mem e cache_dir ficará mais ou menos assim:

cache_mem 1724 MB
cache_dir ufs /squid/cache 16000 16 256


Pronto. Agora, dependendo do seu tráfego, a diferença será logo percebida.

Testado no Debian 6/Squid 3.

Veja essa e outras dicas em meu blog, onde posto dicas e soluções em infraestrutura de TI.


Gostou? Compartilhe e deixe seu comentário.
Achou algum erro? Precisa de ajuda? Críticas? Deixe seu comentário.

Obrigado!
Jeferson R. Costa

Outras dicas deste autor

Alterando senha de usuário no MySQL

Travando/bloqueando arquivos e diretórios no GNU/Linux

HTML - Redirecionamento de página

Habilitando/Desabilitando daemons no Debian

ZIP no GNU/Linux

Leitura recomendada

Base LDAP do Active Directory do Windows Server 2008 64 bits para autenticação do Apache - openSUSE 11.3 64 bits

Configurando rede manualmente no Debian Linux e derivados

Integrando AppImage no Debian, Ubuntu e Linux Mint

Upgrade no KDE: "Call to lnusertemp failed (temporary directories full?). Check your installation"

Corrigindo o bug de maximizar vídeos do Youtube no Firefox 3

  

Comentários
[1] Comentário enviado por flaviog em 27/11/2015 - 08:37h

Ótima dica.
Esse tipo de material é muito bom para nos ajudar na hora de uma configuração mais afinada.
Parabéns.

Por exemplo:
calculamos 16mb para cada giga de hd para cache.

Se usarmos seguinte configuração para cache_dir
cache_dir diskd /var/spool/squid/1 10240 16 256 Q1=64 Q2=72
cache_dir diskd /var/spool/squid/2 10240 16 256 Q1=64 Q2=72
cache_dir diskd /var/spool/squid/3 10240 16 256 Q1=64 Q2=72
cache_dir diskd /var/spool/squid/4 10240 16 256 Q1=64 Q2=72

Devo considera (16 * 10) apenas ou sera um calculo para cada linha, ou seja, (16*10)+(16*10)+(16*10)+(16*10).

Grande abraço.



Contribuir com comentário