Squid - Entendendo um pouco as configurações

Veremos alguma teoria e as configurações mínimas do Squid, baseadas no "squid.conf" e com comentários,

[ Hits: 62.332 ]

Por: Buckminster em 19/04/2013


Cálculo do cache_dir e do cache_mem



A tabela do Squid na memória RAM funciona como um índice. Pense no índice de objetos do Squid como se fosse o índice de páginas de um livro. Quanto maior o livro, maior o índice e, logicamente, mais tempo se levará na busca de uma página específica.

Quanto mais objetos o Squid tem armazenado no disco rígido, mais espaço de memória RAM ele alocará. Porém, isto não significa que você deve esvaziar o cache do Squid com frequência.

O ideal é calcular bem o "cache_dir" e o "cache_mem" para somente ter que limpar o cache do Squid em caso de problemas, pois quando o "cache_dir" lota, o Squid automaticamente apaga os objetos mais antigos e grava os mais novos.

Uma pequena quantidade de metadados para cada objeto em cache é mantida na memória. Esta estrutura de dados é conhecida como StoreEntry. São 56 bytes em arquiteturas de 32 bits e 88 bytes em arquiteturas de 64 bits.

Além disso, existe um cache de 16 bytes (MD5) associado a cada StoreEntry. Isto significa que existem 72 ou 104 bytes de metadados na memória para cada objeto no cache. Um cache com 1.000.000 de objetos, portanto, requer 72 MB de memória apenas para os metadados.

O Squid utiliza 10 MB de memória RAM para cada 1 GB no disco em sistemas de 32 bits e 14 MB de memória RAM para cada 1 GB em sistemas de 64 bits. A FAQ do Squid aconselha utilizar um terço da memória total da máquina somado às regras anteriores.

Cálculo do "cache_mem" total utilizando 5 GB como exemplo e tomando-se, por exemplo, 3 gigabytes como total da memória RAM da máquina:

Para sistemas de 32 bits:
  • 10 x 5 = 50 MB
  • 1/3 de 3 GB = 1 GB (1024 MB)
  • 1024 + 50 = 1074 MB

Para sistemas de 64 bits:
  • 14 x 5 = 70 MB
  • 1024 + 70 = 1094 MB

* Lembre que os 5 GB acima utilizados no cálculo, não se referem à quantidade colocada no "cache_dir" e sim à quantidade que o Squid TEM armazenado dentro do espaço total destinado ao "cache_dir".

A coisa toda se processa assim: você pode colocar 500 mil GB de "cache_dir" (se tiver um HD desse tamanho), mas o Squid irá aumentando o índice de acordo com o que for armazenando no disco e, consequentemente, ocupará mais espaço na memória RAM. Quando ele "encher" os 500 mil GB, ele mesmo excluirá os objetos mais antigos do cache.

O confuso "squid.conf" nos diz que para o "cache_dir" é uma boa prática utilizar o espaço total da partição destinada para o cache_dir menos 20%.

Para o cálculo efetivo do "cache_dir" e do "cache_mem", é importante analisar a quantidade de tráfego da sua rede. Basicamente, quanto maior a rede (número de computadores), maior o tráfego.

Um adendo deve ser feito agora em caso de se utilizar cache de vídeos: deve ter-se um HD de tamanho generoso e deve-se aumentar o maximum_object_size para um tamanho ideal.

Donde conclui-se: o tamanho do "cache_dir" é proporcional ao tamanho do "cache_mem". Quanto mais aumenta o espaço utilizado no "cache_dir" mais aumenta o espaço utilizado no "cache_mem".

Resumindo

As quantidades colocadas no "cache_dir" e no "cache_mem", são quantidades totais que irão sendo preenchidas de acordo com o uso do Squid. Você deve ir "jogando" com o "cache_dir" e com o "cache_mem" se acontecerem problemas de lentidão ou travamento, e deve verificar se as ACLs (fast ou slow) não estão causando essa lentidão ou travamento.

A escolha do tamanho ideal para o "cache_dir" e para o "cache_mem" deve levar em conta o tráfego dentro da rede. Mas lembre-se, colocar muito "cache_dir" e pouco "cache_mem" poderá tornar o Squid lento e, por conseguinte, o sistema operacional.

E colocar pouco "cache_dir" e muito "cache_mem", representa um desperdício de memória e poderá faltar memória para o sistema operacional e/ou para os outros serviços instalados na máquina, pois o Squid reserva o espaço do "cache_mem" e poderá causar, de novo, lentidão ou travamento.

Eu, pessoalmente, acredito que utilizar um "cache_dir" de 5 GB (cinco gigabytes) é o ideal, quando não se fizer cache de vídeos. Lembre-se da analogia do índice do Squid: quanto mais páginas no livro, maior o índice e, consequentemente, mais tempo o Squid leva na busca dentro do cache.

Porém, polêmicas à parte, torno a repetir, isso depende da quantidade de tráfego que você tem na sua rede e da configuração de hardware que você tem disponível.

Uma configuração ideal de máquina (opinião minha) é colocar o sistema operacional com IPtables, Squid (com Sarg) e DHCP com compartilhamento.

Lógico que aí está incluída a escolha do tamanho do HD, do processador, da quantidade de memória RAM, da placa-mãe etc; e da disponibilidade financeira para se montar o hardware. Essa configuração fica melhor até para gerenciamento do servidor.

Se você utilizar o Squid com Windows (Squid-NT ou WinSquid), deve colocar uma boa quantidade de memória RAM, pois o sistema operacional Windows, além de consumir muita memória RAM, não tem um bom gerenciamento dela.

Página anterior     Próxima página

Páginas do artigo
   1. Squid
   2. Desempenho do Squid
   3. Cálculo do cache_dir e do cache_mem
   4. Configurações mínimas recomendadas com comentários
Outros artigos deste autor

ClamAV, o kit de ferramentas antivírus

VMD no Debian - Instalação e configuração

Compilação de Kernel

Como utilizar de forma correta os repositórios e pacotes Backports

Atualizar o macOS no Mac - Opencore Legacy Patcher

Leitura recomendada

Configuração do Squid + Dansguardian no Slackware 11

Squid com autenticação

Instalação e configuração do Squid no Fedora

Servidor proxy (Squid)

Configurando o Squid no Slackware

  
Comentários
[1] Comentário enviado por danniel-lara em 19/04/2013 - 12:00h

Parabéns pelo Artigo Muito bom

[2] Comentário enviado por Buckminster em 19/04/2013 - 18:00h

Obrigado.
Estamos aí, Daniel!

[3] Comentário enviado por TioRoni em 19/04/2013 - 20:19h

Muito bom mesmo João, vc é o cara.

[4] Comentário enviado por Buckminster em 19/04/2013 - 23:42h


[3] Comentário enviado por TioRoni em 19/04/2013 - 20:19h:

Muito bom mesmo João, vc é o cara.


Valeu Roni.

[5] Comentário enviado por K1ll3r_B0y em 23/04/2013 - 15:40h

Parabéns, ótimo artigo!

[6] Comentário enviado por Buckminster em 24/04/2013 - 03:26h


[5] Comentário enviado por K1ll3r_B0y em 23/04/2013 - 15:40h:

Parabéns, ótimo artigo!


Agradeço pelo apoio.

[7] Comentário enviado por tomtom007 em 26/04/2013 - 10:16h

Parabéns muito bom seu artigo !!!

[8] Comentário enviado por Buckminster em 26/04/2013 - 19:05h


[7] Comentário enviado por tomtom007 em 26/04/2013 - 10:16h:

Parabéns muito bom seu artigo !!!


Obrigado.

[9] Comentário enviado por KamenBlackRX em 29/04/2013 - 15:47h

Obrigado, Resolvel minha duvida :D Parabéns cara. Otimo Artigo!

[10] Comentário enviado por Buckminster em 29/04/2013 - 16:21h


[9] Comentário enviado por KamenBlackRX em 29/04/2013 - 15:47h:

Obrigado, Resolvel minha duvida :D Parabéns cara. Otimo Artigo!


De nada. Obrigado.

[11] Comentário enviado por Sylverone em 30/04/2013 - 15:29h

Ótimo Artigo!!
Obrigado

[12] Comentário enviado por Buckminster em 30/04/2013 - 17:56h


[11] Comentário enviado por Sylverone em 30/04/2013 - 15:29h:

Ótimo Artigo!!
Obrigado


De nada!

[13] Comentário enviado por obernan em 08/05/2013 - 16:09h

Kara muito bom seu artigo. Parabéns !!!!! Está muito esclarecedor.

[14] Comentário enviado por Buckminster em 09/05/2013 - 19:04h


[13] Comentário enviado por obernan em 08/05/2013 - 16:09h:

Kara muito bom seu artigo. Parabéns !!!!! Está muito esclarecedor.


Obrigado.

[15] Comentário enviado por ribeirosga em 13/09/2013 - 09:58h

Artigo excelente...

[16] Comentário enviado por Buckminster em 22/09/2013 - 17:06h


[15] Comentário enviado por ribeirosga em 13/09/2013 - 09:58h:

Artigo excelente...


Obrigado.

[17] Comentário enviado por rotaviano em 23/11/2013 - 17:23h

showwwwwwwwwwww parabens

[18] Comentário enviado por Buckminster em 09/12/2013 - 19:23h


[17] Comentário enviado por rotaviano em 23/11/2013 - 17:23h:

showwwwwwwwwwww parabens


Obrigado.

[19] Comentário enviado por removido em 18/12/2013 - 08:36h

Você é o MRs Squid.... Hehehe, aprendo muito com vc. Obrigado pelos ótimos artigos.

[20] Comentário enviado por arasouza em 27/03/2014 - 11:22h

Cara primeiro parabéns, pelas contribuições que são várias ao vivaolinux e a comunidade em geral, apenas uma dúvida eu estou tendo uns problemas de lentidão com meu squid de uns dias pra cá.. andei dando uma pesquisada e vi seu artigo (muito bom por sinal) e vi que vc tem uma sequência bem diferente do que estou acostumado, essa sequencia pode ser seguida, ou vc apenas está explanando, tipo eu não vou dar um copiar e colar dentro do meu squid.conf conforme o artigo pois teria que colocar os comandos na sequencia correta??? valeu pela ajuda.

[21] Comentário enviado por Buckminster em 31/03/2014 - 09:08h


[20] Comentário enviado por arasouza em 27/03/2014 - 11:22h:

Cara primeiro parabéns, pelas contribuições que são várias ao vivaolinux e a comunidade em geral, apenas uma dúvida eu estou tendo uns problemas de lentidão com meu squid de uns dias pra cá.. andei dando uma pesquisada e vi seu artigo (muito bom por sinal) e vi que vc tem uma sequência bem diferente do que estou acostumado, essa sequencia pode ser seguida, ou vc apenas está explanando, tipo eu não vou dar um copiar e colar dentro do meu squid.conf conforme o artigo pois teria que colocar os comandos na sequencia correta??? valeu pela ajuda.


Essa sequência do squid.conf do artigo é a sequência do squid.conf original. Eu procuro seguir ela sempre.

Quanto à lentidão do teu Squid, você deve primeiro verificar qual a causa dessa lentidão. Procure lembrar qual foi a última alteração que você fez antes dele ficar lento. E veja os logs do Squid, os logs geralmente apontam os prováveis erros.
Primeiro procure identificar a causa da lentidão antes de sair alterando o squid.conf.

[22] Comentário enviado por danilo.rcte em 09/10/2015 - 15:47h


Parabens pelo artigo !!! show de bola...

Cara gostaria de tirar uma duvida com vc... instalei um squid3 - nao transparente e sem autenticação, esta tudo funcionando... bloqueios de urls, bloqueios por ip, tudo.... porem ao testar o delay pools, percebi que ele não limita sites https.... ou seja... funciona perfeitamente com todos os sites http: (porta 80) , porem ao entrar em sites https... a limitação acaba... e o usuario navega em full banda.... a duvida é.... só o meu servidor squid faz isso... ou o squid em geral nao limita banda dos sites https???


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts