[FUG-BR] Utilização de SWAP no FreeBSD 64bits proxy squid
Marcelo Gondim
gondim em bsdinfo.com.br
Quinta Fevereiro 2 10:31:49 BRST 2012
Em 02/02/2012 10:04, Saul Figueiredo escreveu:
> Olá a todos,
>
> Essa é minha primeira participação na lista, espero poder contribuir
> muito com essa comunidade, mais com soluções do que com problemas
> espero.
>
> Tenho alguns servidores proxy onde trabalho, todos FreeBSD. Observei
> que todas as maquinas estavam rodando o FreeBSD 8.2 i386 (versão
> 32bits) e que uma delas, uma maquina Dell, tinha um processador que da
> suporte a sistemas 64bits.
>
> Eu estava tendo alguns problemas de memoria com a máquina, cerca de 6
> mil usuários utilizam aquela maquina como proxy (a carga é balanceada
> entre os 3), e as vezes o squid simplesmente reiniciava do nada.
> Pesquisei um pouco e vi que meu problema era memoria: Eu utilizo um
> CacheMem 3072 MB e a maquina reconhecia 3254 MB de RAM, O sistema
Saul o uso do CacheMem não é como você está colocando, existe uma
formula para isso. As pessoas costumam confundir isso e aí socam valores
altos no CacheMem.
Inclusive está relacionado com o cache_dirs. Abaixo a recomendação do
próprio pessoal do Squid:
How much memory do I need in my Squid server?
As a rule of thumb on Squid uses approximately 10 MB of RAM per GB of
the total of all cache_dirs (more on 64 bit servers such as Alpha), plus
your cache_mem setting and about an additional 10-20MB. It is
recommended to have at least twice this amount of physical RAM available
on your Squid server. For a more detailed discussion on Squid's memory
usage see the sections above.
The recommended extra RAM besides what is used by Squid is used by the
operating system to improve disk I/O performance and by other
applications or services running on the server. This will be true even
of a server which runs Squid as the only tcp service, since there is a
minimum level of memory needed for process management, logging, and
other OS level routines.
If you have a low memory server, and a large disk, then you will not
necessarily be able to use all the disk space, since as the cache fills
the memory available will be insufficient, forcing Squid to swap out
memory and affecting performance. A very large cache_dir total and
insufficient physical RAM + Swap could cause Squid to stop functioning
completely. The solution for larger caches is to get more physical RAM;
allocating more to Squid via cache_mem will not help.
Ex: vamos dizer que você tenha no cache_dirs definido 100G de espaço.
Logo em sistemas 32bits squid usa uns 10Mb por giga em 64bits uns 16Mb
por giga. Vamos dizer que no seu cache_mem esteja com 256M logo a
fórmula seria algo assim:
- 100Gb de espaço no cache_dirs
- 10Mb por cada giga dos 100Gb do cache_dirs em sistemas 32bits, em
64bits eu colocaria 16Mb por cada giga.
- 256Mb de cache_mem
- 20Mb adicional sugerido para o cálculo.
Conta:
100 * 10 = 1000Mb + 256M + 20M = 1276Mb onde vc deveria ter de ram pelo
menos o dobro desse valor, ou seja, você teria que ter na máquina 2552Mb.
Repare que se você aumenta um valor o outro também é ajustado e eles são
interligados.
> rodava apertado com pouco menos de 200MB de RAM e quando a carga do
> servdor subia, derrubava o squid e o inicializava novamente.
>
> Percebi que era ora de atualizar a memoria deste servidor. Enquanto as
> memorias eram emcomendadas na dell (+4GB) , peguei este servidor e
> instalei um FreeBSD 8.2 só que 64 Bits, ao fim da instalação, a
> maquina reconheceu os 4GB de RAM.
>
> Vejam a configuração atual:
>
> proxy4# muse -m
> kvm_open: kvm_nlist: No such file or directory
> kvm_open: kvm_nlist: No such file or directory
> Active: 2840.688 MB
> Inactive: 341.574 MB
> Wired: 542.820 MB
> Reserved: 5.324 MB
> Cache: 111.945 MB
> Kernel: 0.133 MB
> Interrupt: 0.008 MB
> Buffer: 417.938 MB
>
> Total: 3939.402 MB
> Free: 101.762 MB
>
> Swap: 8192MB
>
> -------------------------------------------------
>
> proxy4# sysctl -a | egrep -i 'hw.machine|hw.model|hw.ncpu'
> hw.machine: amd64
> hw.model: Intel(R) Xeon(R) CPU 5130 @ 2.00GHz
> hw.ncpu: 4
> hw.machine_arch: amd64
>
> --------------------------------------------------
>
> proxy4# uname -a
> FreeBSD proxy4 8.2-RELEASE FreeBSD 8.2-RELEASE #0: Thu Feb 17 02:41:51
> UTC 2011 root em mason.cse.buffalo.edu:/usr/obj/usr/src/sys/GENERIC
> amd64
>
> ---------------------------------------------------
>
> Agora continuo usando 3072 MB de CacheMem para o squid, e sobra um
> pouco mais de memoria para o sisetma em sí utilizar.
>
> Porem venho notado algumas coisas, que achei bem estranho:
>
> 1 - Quando faço alguma alteração no squid, e dou um squid -k
> reconfigure demora cerca de 3 a 4 minutos para o squid compilar e
> voltar a navegar, o que não acontecia quando eu tinha a versão 32
> bits;
>
> 2 - A Utilização da SWAP passa a ser frequente agora. Antes no FreeBSD
> 32bits, mesmo com falta de memoria, ele não usava sequer 100MB de
> swap, já hoje, ele utiliza mais de 50% da partição de swap e olha que
> eu tenho 8192MB de Swap.
> Vejam no link da imagem a baixo o como fica o meu HTOP:
> http://illuminaticorp.org/Util_swap.jpg
>
> Isso é normal ?
>
>
>
> --
>
> "Deve-se aprender sempre, até mesmo com um inimigo."
> (Isaac Newton)
>
> Atenciosamente,
> Saul Figueiredo
> Analista FreeBSD/Linux
> Linux Professional Institute Certification Level 1
> Linux Professional Institute Certification Level 2
> -------------------------
> Histórico: http://www.fug.com.br/historico/html/freebsd/
> Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd
>
Mais detalhes sobre a lista de discussão freebsd