[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