2012/2/6 Saul Figueiredo <[email protected]>: > Em 2 de fevereiro de 2012 10:55, Saul Figueiredo > <[email protected]> escreveu: >> Em 2 de fevereiro de 2012 10:31, Marcelo Gondim >> <[email protected]> escreveu: >>> 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. >>> >>> 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 [email protected]:/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 >>>> >>> >>> ------------------------- >>> Histórico: http://www.fug.com.br/historico/html/freebsd/ >>> Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd >> >> >> >> Marcelo, >> Obrigado pela resposta. >> Eu não conhecia muito bem a formula obrigado por envia-la. >> >> antes , quando eu montei esse servidor pela primeira vez, eu colocava >> um cache_mem de 255 MB com um cache dir de 19GB. >> >> e ai, quando colocava a maquina em produção, quando atingia um certo >> numero de conexões 7000 conexões, o squid restartava sozinho. Daí fui >> alterando para cima o valor até parar, até 2048 MB, que foi quando >> parou, aí então achei que quanto mais, melhor. >> >> E essa demora para voltar do squid -k reconfigure? antes de formatar >> era tão rapido... >> >> Segue o meu squid.conf, substituí meu dominio pela palavra dominio. >> >> -----V >> >> http_port 3128 >> >> visible_hostname proxy4.servidor.dominio >> >> cache_mem 3072 MB >> cache_dir ufs /sarg/cache/ 19000 16 256 >> coredump_dir /sarg >> >> access_log /sarg/logs/access.log >> cache_log /sarg/logs/cache.log >> cache_store_log none >> logfile_rotate 15 >> cache_mgr [email protected] >> error_directory /usr/local/etc/squid/errors/pt-br >> >> >> #Faz o balanceamento nos 2 webshields >> cache_peer 200.216.236.2 parent 8080 0 no-digest no-query round-robin >> weight=1 >> cache_peer 200.216.236.36 parent 8080 0 no-digest no-query round-robin >> weight=1 >> >> #Faz o balanceamento de autenticacao nos 2 ADs >> auth_param ntlm program /usr/local/libexec/squid/ntlm_smb_lm_auth -b >> dominio/servidor02 dominio/servidor01 >> auth_param ntlm children 100 >> auth_param ntlm keep_alive off >> authenticate_ip_ttl 3600 seconds >> >> #auth_param basic program /usr/local/libexec/squid/ntlm_smb_lm_auth >> dominio\\servidor02 >> auth_param basic program /usr/local/libexec/squid/ntlm_smb_lm_auth -b >> dominio/servidor02 dominio/servidor01 >> auth_param basic children 2 >> >> hierarchy_stoplist cgi-bin ? >> acl QUERY urlpath_regex cgi-bin \? >> no_cache deny QUERY >> >> refresh_pattern ^ftp: 1440 20% 10080 >> refresh_pattern ^gopher: 1440 0% 1440 >> refresh_pattern . 0 20% 4320 >> >> #Regras padroes de seguranca >> acl all src >> acl manager proto cache_object >> acl localhost src 127.0.0.1/32 >> acl to_localhost dst 127.0.0.0/8 >> acl SSL_ports port 443 563 2096 >> acl Safe_ports port 80 81 82 84 21 443 563 4443 70 210 1025-65535 280 >> 488 591 777 2096 >> acl portas port 7777 8080 8888 8000 1041 4500 8686 1521 1630 2631 5297 10038 >> acl CONNECT method CONNECT >> acl senha proxy_auth REQUIRED >> >> acl rede_servidor src 10.0.0.0/8 >> acl experti src 192.168.5.0/27 >> acl gmail url_regex -i "/usr/local/etc/squid/regras/gmail.txt" >> acl usuarios_negados proxy_auth -i >> "/usr/local/etc/squid/regras/usuarios_negados.txt" >> acl ips_dst_liberados dst "/usr/local/etc/squid/regras/ips_dst_liberados.txt" >> acl dominio src "/usr/local/etc/squid/regras/listaip.txt" >> acl ips_sem_auth src "/usr/local/etc/squid/regras/ips_sem_auth.txt" >> acl acesso_sem_auth url_regex -i >> "/usr/local/etc/squid/regras/acesso_sem_auth.txt" >> acl twitter url_regex -i "/usr/local/etc/squid/regras/twitter.txt" >> acl liberados dstdomain "/usr/local/etc/squid/regras/liberados.txt" >> acl google dstdomain "/usr/local/etc/squid/regras/dominio_google.txt" >> acl lib_google src "/usr/local/etc/squid/regras/lib_google.txt" >> acl quiosque dstdomain >> "/usr/local/etc/squid/regras/dominio_autoatendimento.txt" >> acl autoatendimento src "/usr/local/etc/squid/regras/autoatendimento.txt" >> acl bloqueados url_regex -i "/usr/local/etc/squid/regras/bloqueados.txt" >> acl block_195 src "/usr/local/etc/squid/regras/block_195.txt" >> acl permitidos_direct url_regex -i >> "/usr/local/etc/squid/regras/permitidos_direct.txt" >> acl urls_msn url_regex -i "/usr/local/etc/squid/regras/urls_msn.txt" >> acl ips_msn src "/usr/local/etc/squid/regras/ips_msn.txt" >> acl servidores src "/usr/local/etc/squid/regras/servidores.txt" >> acl downloads_bloqueados urlpath_regex >> "/usr/local/etc/squid/regras/downloads_bloqueados.txt" >> >> >> http_access allow acesso_sem_auth >> http_access deny manager !localhost >> http_access deny CONNECT !SSL_ports >> http_access deny !Safe_ports >> >> http_access deny bloqueados >> http_access deny downloads_bloqueados >> http_access deny block_195 >> >> http_access allow liberados >> http_access allow servidores >> http_access allow dominio permitidos_direct >> #http_access allow gmail >> http_access allow ips_msn urls_msn >> http_access allow twitter >> http_access allow rede_servidor ips_dst_liberados >> http_access allow lib_google google >> http_access allow autoatendimento quiosque >> http_access deny usuarios_negados >> http_access allow dominio senha >> #http_access allow dominio >> http_access deny all >> >> miss_access allow rede_servidor >> miss_access allow experti >> miss_access deny all >> >> always_direct allow permitidos_direct >> >> always_direct allow SSL_ports >> never_direct allow all >> >> http_reply_access allow all >> icp_access allow all >> >> >> >> >> >> -- >> "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 >> [email protected] >> [email protected] >> >> Cel.: (31) 9647-7859 >> Skype: saulfelipe > > > > Alguém então teria mais alguma dica?
Eu começo com o cache_mem baixo, e depois de atingir o estado permanente, depois que a cache em disco fica cheia, eu vou subindo a cache em memória. Mas talvez seja melhor começar com o cache em disco e em memória baixo, tipo 30 GB de disco e 200 MB em memória, e depois vai aumentando. Uma coisa importante: O Squid NÃO pode sofrer swap, pois aí o desempenho desaba e o disco será massacrado com uma quantidade enorme de I/O. Aliás, eu troquei o Squid pelo Lusca, pois tinha um bug chato no squid. Ele estava com um memory leak, que o fazia consumir cada vez mais memória, e o resultado era o temido swap do squid. João Rocha. > > > -- > "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 > [email protected] > [email protected] > ------------------------- > Histórico: http://www.fug.com.br/historico/html/freebsd/ > Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd -- "Sempre se apanha mais com as menores besteiras. Experiência própria." http://jgoffredo.blogspot.com [email protected] ------------------------- Histórico: http://www.fug.com.br/historico/html/freebsd/ Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd

