Manual traduzido do Squid - Parte 3

Nesta terceira parte da tradução do manual do Squid 3, lucraremos com informações valiosas sobre SSL e cache. A tradução não foi realizada literalmente. Alguns termos foram adaptados para maior compreensão e alguns termos, foram deixados em inglês para evitar perder-se alguma coisa na tradução.

[ Hits: 26.818 ]

Por: Buckminster em 02/12/2013


Opções de cache de memória e armazenamento



Memory Cache Options

TAG: cache_mem (bytes)
Nota: este parâmetro não especifica o tamanho MÁXIMO dos processos. SOMENTE coloca um limite na quantidade de memória ADICIONAL que o Squid usa como um cache de memória de objetos. O Squid utiliza a memória para outras coisas também. Consulte a seção 8 FAQ SQUID para mais informações .

cache_mem especifica a quantidade ideal de memória a ser usada para:
  • In-Transit objects
  • Hot Objects
  • Negative-Cached objects

Os dados para esses objetos são armazenados em blocos de 4 KB. Este parâmetro especifica o limite ideal superior no tamanho total de blocos de 4 KB alocados.

Objetos em trânsito têm prioridade sobre os demais. Quando o espaço adicional é necessário para a entrada de dados, o cache negativo e os Hot Objects serão liberados. Em outras palavras, o Negative-Cached objects e os Hot Objects irão preencher qualquer espaço não utilizado não necessário para objetos em trânsito.

Se as circunstâncias o exigirem, esse limite será ultrapassado. Especificamente, se a sua taxa de requisição de entrada requer mais do que o especificado em cache_mem para armazenar objetos em trânsito, o Squid vai exceder este limite para satisfazer às novas requisições. Quando a carga diminuir, os blocos serão liberados até que o ponto alto seja alcançado de novo. Depois disso, os blocos serão usados para armazenar Hot Objects.

Se o cache de memória compartilhada está habilitado, o Squid não usa o espaço compartilhado de cache para objetos em trânsito, mas eles ainda consomem tanta memória local quanto for necessária. Para mais detalhes sobre o cache de memória compartilhada, consulte memory_cache_shared.
Default: cache_mem 256 MB


TAG: maximum_object_size_in_memory (bytes)
Objetos maiores que este tamanho, não serão mantidos no cache de memória. Ele deve ser alto o suficiente para manter os objetos acessado frequentemente na memória, para melhorar o desempenho, porém, baixo o suficiente para manter objetos maiores acumulados no cache_mem.
Default: Maximum_object_size_in_memory 512 KB


TAG: memory_cache_shared on | off
Controla se o cache de memória é compartilhado entre os processos do SMP.

O cache de memória compartilhada é destinado a ocupar tantos bytes no cache_mem e substitui o cache de memória não compartilhada, embora algumas entidades podem ainda ter cache localmente por processos (por exemplo, objetos em trânsito internos e externos podem ser servidos a partir de um cache de memória local, mesmo se a memória compartilhada está habilitada) .

Por default, o cache de memória é compartilhado se, e somente se, satisfizer as seguintes condições: o Squid funciona em modo SMP com vários processos, cache_mem for positivo, e o ambiente do Squid suporta as primitivas IPC necessárias (por exemplo, segmentos de memória compartilhada POSIX e operações atômicas GCC-style).

Para evitar o bloqueio de blocos, a memória compartilhada usa algoritmos oportunistas, que não garantem que cada entidade cacheável que poderia ter sido compartilhada entre os processos do SMP vai realmente ser compartilhada.

Atualmente, entidades superiores a 32 KB de tamanho não podem ser compartilhadas. Default: on; quando suportado se fazendo cache de memória com vários processos do SMP.


TAG: memory_cache_mode
Controla quais objetos para manter na memória cache (cache_mem).

always :: mantém sempre na memória os objetos mais recentemente buscados no cache no disco (default).
disk :: somente são mantidos na memória, o que significa que um objeto deve, primeiro, ser armazenado em cache no disco e, em seguida, se bater uma segunda vez antes de ser cacheado na memória.
network :: somente objetos buscados na rede são mantidos na memória.
Default: memory_cache_mode always


TAG: memory_replacement_policy
Parâmetro de política de substituição de memória. Determina quais objetos são removidos da memória quando um espaço na memória for necessário.

Veja cache_replacement_policy para mais detalhes.
Default: memory_replacement_policy lru


Disk Cache Options

TAG: cache_replacement_policy
Parâmetro de política de substituição de cache, que determina quais objetos são despejados (substituídos) quando um espaço em disco for necessário.

lru :: política original do Squid com base na política LRU.
heap GDSF :: tamanho duplo de frequência.
heap LFUDA :: usado menos frequentemente, de acordo com o uso dinâmico. heap LRU :: política LRU implementada usando uma pilha.

Aplica-se a todas as linhas cache_dir listados abaixo.
* As políticas LRU mantêm objetos recentemente referenciados.

A política heap GDSF otimiza a taxa de acerto de objetos, mantendo objetos menos populares no cache para que eles tenham melhor chance de conseguir um Hit. Atinge uma taxa de acertos de bytes inferior à política LFUDA, embora evite objetos maiores (possivelmente mais populares).

A política heap LFUDA mantém os objetos populares em cache, independentemente do seu tamanho e, portanto, optimiza a taxa de acerto de bytes, já que um grande número de objetos populares impedirão que os objetos um pouco menos populares sejam armazenados em cache.

Ambas as políticas utilizam um mecanismo de uso dinâmico, que impedem que a poluição do cache possa ocorrer baseada na frequência das políticas de substituição.

Nota: se estiver usando a política de substituição LFUDA, você deve aumentar o valor do maximum_object_size acima do seu default de 4 MB, para maximizar a taxa de acerto potencial de LFUDA.

Para mais informações sobre a substituição de cache GDSF e LFUDA, veja: Default: cache_replacement_policy lru


TAG: cache_dir
Uso:
    
   cache_dir Type Directory-Name Fs-specific-data [options]
    
Você pode especificar várias linhas de cache_dir para espalhar o cache entre as diferentes partições de disco.

Type :: especifica o tipo de sistema de armazenamento usado. ufs é o default. Para ativar qualquer um dos outros sistemas de armazenamento, veja a opção de compilação: --enable-storeio

Directory :: é um diretório de nível superior, onde troca cache de arquivos que serão armazenados. Se você quiser usar um disco inteiro para o cache, pode ser o diretório do ponto de montagem. O diretório deve existir e ter permissão de escrita para o Squid. O Squid não vai criar esse diretório para você.

Em configurações SMP, o cache_dir não deve preceder as opções dos processos SMP e deve usar macros de configuração ou condicionais para fornecer o cache no disco, a cada processo interessado em cache dedicado.

Armazenamento ufs: é o velho formato de armazenamento do Squid.
   
   cache_dir ufs Directory-Name Mbytes L1 L2 [options]
   
Mbytes :: é a quantidade de espaço em disco (MB) para utilizar no diretório. O default é 100 MB. Altere isso para adequar à sua configuração. Não coloque o tamanho total de sua unidade de disco aqui. Em vez disso, se você quiser o Squid usando todo o disco rígido, subtraia 20% do valor total do disco.

L1 :: é o número de subdiretórios de primeiro nível que serão criados. O default é 16.

L2 :: é o número de subdiretórios de segundo nível que serão criados em cada diretório de primeiro nível. O default é 256.

Armazenamento aufs: usa o mesmo formato de armazenamento que o ufs, utilizando threads POSIX para evitar o bloqueio do processo principal de I/O em disco do Squid. Era conhecido anteriormente como async-io.
   
   cache_dir aufs Directory-Name Mbytes L1 L2 [options]
   
Veja descrições dos argumentos ufs acima.

Armazenamento diskd: utiliza o mesmo formato de armazenamento que o ufs, mas utilizando um processo separado para evitar o bloqueio do processo principal de I/O em disco do Squid.
    
   cache_dir diskd Directory-Name Mbytes L1 L2 [options] [Q1=n] [Q2=n]
    
Veja descrições dos argumentos ufs acima.

Q1 especifica o número de pedidos de I/O não reconhecidos quando o Squid para de abrir novos arquivos. Se muitas mensagens estiverem nas filas de espera, o Squid não vai abrir novos arquivos. O default é 64.

Q2 especifica o número de mensagens não confirmadas quando o Squid começa a bloquear. Se muitas mensagens estiverem nas filas de espera, o Squid bloqueia até receber algumas respostas. O default é 72.

Quando Q1 < Q2 (default , o diretório de cache é otimizado para menores tempos de resposta à custa de uma diminuição da taxa de hits. Se Q1 > Q2, o diretório de cache é otimizado para maior taxa de acertos à custa de um aumento no tempo de resposta.

Armazenamento rock:
   
   cache_dir rock Directory-Name Mbytes  [options]
    
O tipo rock é um armazenamento de estilo banco de dados. Todas as entrada no cache são armazenadas em um arquivo de "banco de dados", usando faixas de tamanho fixo, uma entrada por slot. O tamanho da base de dados é especificado em MB. O tamanho do slot é especificado em bytes usando a opção max-size. Ver abaixo para mais informações sobre a opção max-size.

Se possível, utilizando armazenamento rock, o Squid cria um processo dedicado chamado de disker para evitar o bloqueio de processos de I/O do Squid no disco. Um disker é criad0 para cada cache_dir rock. Diskers são criados somente quando o Squid, em execução no modo daemon, tem suporte para o módulo IpcIo de I/O no disco .

swap-timeout=msec :: o Squid não vai escrever um miss ou ler um hit do disco se estima que a operação de SWAP vai demorar mais do que o número especificado de milissegundos. Por default e quando ajustado para zero, desativa o tempo limite de execução de I/O do disco. Essa opção é ignorada quando há bloqueio do módulo I/O, porque bloquear o I/O síncrono, não permite que o Squid estime o tempo de espera para uso SWAP.

max-swap-rate=swaps/sec :: limita artificialmente o acesso ao disco usando o limite da taxa de I/O especificado. Fazer SWAP nas requisições faria a taxa média de I/O exceder o limite de atraso.

Individualizar a SWAP nas requisições (ou seja, hits ou reads) não são atrasos, mas elas contribuem para a média da taxa de SWAP e, uma vez que são colocadas na mesma fila FIFO como permuta das requisições, elas podem esperar mais tempo se a taxa máxima de troca (swap) for menor. Isto é necessário em sistemas de arquivos que tem buffer too-many e, em seguida, começam a bloquear o Squid e outros processos ao fazer essas gravações para o disco.

Essa opção é normalmente utilizada em conjunto com swap-timeout, para evitar atrasos excessivos e estouros de fila quando a demanda excede a largura de banda disponível no disco. Por default e quando ajustado para zero, desativa o tempo limite de execução de I/O do disco. Atualmente é suportada apenas pelo módulo IpcIo.

Armazenamento coss

NP :: sistema de arquivos COSS no Squid 3 tem sido considerado demasiado instável para uso em produção e tem sido assim removido nesta versão. Esperamos que ele possa ser utilizado novamente em breve.

block-size=n define o "tamanho do bloco" para o cache_dir COSS.

O Squid usa números de arquivos como números de blocos. Números de arquivos estão limitados a 24 bits, o tamanho do bloco determina o tamanho máximo da partição COSS. O Default é 512 bytes, o que leva a um tamanho máximo de cache_dir 512 << 24, ou 8 GB.

Nota: você não deve alterar o tamanho do bloco coss após o Squid ter escrito alguns objetos para o cache_dir.

O armazenamento de arquivos coss mudou a partir da versão 2.5. Agora ele usa um arquivo chamada stripe nos nomes dos diretórios na configuração e isso será criado por squid -z.

Opções comuns

no-store :: não há novos objetos que devem ser guardados para este cache_dir.

min-size=n :: refere-se ao tamanho mínimo de objetos em bytes que este cache_dir vai aceitar. É usado para restringir um cache_dir a um único armazenamento de grandes objetos (por exemplo, aufs), enquanto os outros storedirs são otimizados para objetos menores (por exemplo, COSS). O default é 0.

max-size=n :: refere-se ao tamanho máximo do objeto em bytes deste cache_dir. Ele é usado para selecionar o cache_dir que irão armazenar os objetos.

Nota: para otimizar a utilização do limite máximo de tamanho que você deve colocar as linhas cache_dir com o menor valor no max-size primeiro e aqueles com nenhuma especificação máxima de tamanho devem ser passados por último.

Nota para coss, o max size deve ser inferior a COSS_MEMBUF_SZ, que pode ser alterado com a opção -with-coss-membuf-size=N.

Remova os comentários e ajuste o seguinte parâmetro para adicionar um diretório de cache de disco.
    
    # cache_dir ufs /etc/squid3/var/cache/squid 100 16 256
     
   
TAG: store_dir_select_algorithm
Defina para round-robin como uma alternativa.
Default: store_dir_select_algorithm least-load


TAG: max_open_disk_fds
Para evitar ter gargalo de I/O no disco, o Squid pode opcionalmente ignorar o cache no disco se mais do que esta quantidade de descritores de arquivos em disco estiverem abertas.

O valor 0 indica que não há limite.
Default: max_open_disk_fds 0


TAG: minimum_object_size (bytes)
Objetos menores que esse tamanho não serão salvos no disco. O valor é especificado em kilobytes, e o default é 0 KB, o que significa que não há mínimo.
Default: minimum_object_size 0 KB


TAG: maximum_object_size (bytes)
Limite default do tamanho máximo de objetos armazenados no disco.
Este tamanho é usado para o cache_dir onde o tamanho máximo não está definido.
O valor é especificado em bytes e o default é de 4 MB.

Se você deseja obter uma alta taxa de acertos (hits), você deve, provavelmente, aumentar este valor (32 MB de objetos atingem a contagem de 3200 10KB hits).

Se você quiser aumentar a taxa de acertos mais do que você quer economizar largura de banda que você deve deixar este valor baixo.

Nota: se estiver usando a política de substituição LFUDA, você deve aumentar este valor para maximizar a taxa de acerto hit de LFUDA!
Veja replacement_policy abaixo para uma discussão sobre essa política.
Default: maximum_object_size 4 MB


TAG: cache_swap_low (percent , 0-100)
Default: cache_swap_low 90


TAG: cache_swap_high (percent, 0-100)

Tags baixa e alta para a substituição de objetos em cache. A substituição começa quando o uso da SWAP (em disco) está acima da marca da taxa alta, não obstante, as tentativas para manter uma utilização próxima da taxa baixa.

Com a utilização da SWAP perto da taxa alta, a substituição torna-se mais agressiva. Se a utilização está perto da taxa baixa, menos substituição é feita a cada vez.

Os padrões são 90% e 95%. Se você tem um cache_dir grande, 5% pode equivaler a centenas de MB. Se este for o caso, você pode querer definir esses números mais próximos um do outro.
Default: cache_swap_high 95

Página anterior     Próxima página

Páginas do artigo
   1. Introdução
   2. Opções relacionadas com ACLS externas SSL_CRTD e opções ICP
   3. Opções de autenticação
   4. Opções de cache de memória e armazenamento
   5. Opções de logfile
   6. Opções para solução de problemas
Outros artigos deste autor

Instalação do PostgreSQL com Apache 2, PHP 5, OpenSSL no Debian Wheezy 7.7 64 bits com systemd e chroot

Redes de Computadores · IPtables · Endereços IPs - Explicações básicas

Compilando o Squid3

Squid - Entendendo um pouco as configurações

Instalação do PAP (PostgreSL, Apache2 e PHP7) no Debian Jessie

Leitura recomendada

Thunder Cache - Cache inteligente

Analisando log Squid do Mikrotik no SARG

Squid - Entendendo um pouco as configurações

Instalação e configuração do Squid 2.6 Stable

Proxy transparente com Squid, com controle de banda e bloqueio por horários

  
Comentários
[1] Comentário enviado por Diego-Garcia em 02/12/2013 - 11:29h

Já está no meus favoritos, mais um excelente artigo.

[2] Comentário enviado por Buckminster em 02/12/2013 - 20:36h


[1] Comentário enviado por Diego-Garcia em 02/12/2013 - 11:29h:

Já está no meus favoritos, mais um excelente artigo.


Obrigado Diego.

[3] Comentário enviado por andersonjackson em 03/12/2013 - 12:56h

Excelente trabalho. Parabéns.

[4] Comentário enviado por Buckminster em 03/12/2013 - 16:53h


[3] Comentário enviado por andersonjackson em 03/12/2013 - 12:56h:

Excelente trabalho. Parabéns.


Obrigado.

[5] Comentário enviado por alysonpires em 05/12/2013 - 04:55h

Parabéns! Conteúdo grande, enorme... Pode ser até chato de ler, mas é completo! Isso que importa ;)

[6] Comentário enviado por Buckminster em 05/12/2013 - 17:06h


[5] Comentário enviado por alysonpires em 05/12/2013 - 04:55h:

Parabéns! Conteúdo grande, enorme... Pode ser até chato de ler, mas é completo! Isso que importa ;)


Obrigado.
É o Manuel do Squid. Não tem como ser de outro tamanho.
É bom para consultas. Não tem necessidade de ler tudo de uma vez.
Eu uso para consultas quando preciso de algum esclarecimento.

[7] Comentário enviado por jfernandes em 09/12/2013 - 09:47h

Meus parabéns primeiro pela iniciativa, muito boa, e segundo por fazer um belo trabalho .
Parabéns .

[8] Comentário enviado por Buckminster em 09/12/2013 - 20:03h


[7] Comentário enviado por jfernandes em 09/12/2013 - 09:47h:

Meus parabéns primeiro pela iniciativa, muito boa, e segundo por fazer um belo trabalho .
Parabéns .


Obrigado.

[9] Comentário enviado por px em 12/12/2013 - 14:32h

Mais um excelente conteúdo, como sempre! muito bem escrito e direto ao ponto, parabéns e nota 10!

[10] Comentário enviado por Buckminster em 12/12/2013 - 17:23h


[9] Comentário enviado por px em 12/12/2013 - 14:32h:

Mais um excelente conteúdo, como sempre! muito bem escrito e direto ao ponto, parabéns e nota 10!


Obrigado Pedro.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts