Acesso lento pelo Squid

Iniciado por dwall, 09 de Junho de 2011, 10:49

tópico anterior - próximo tópico

dwall

Senhores, tive que reintalar o Squid 2.6.STABLE18 + SquidGuard + Bind9 num Ubuntu Server 8.04 recentemente e percebi que a partir daí os usuários começaram a reclamar com certa frequência de lentidão no acesso a qualquer site da internet, pois antes do procedimento era tudo uma maravilha.
A máquina é virtual num VMware Server, com proc. Core 2 Duo 1,86Ghz e 1,5 GB de RAM. Funciona como servidor proxy e DNS.
Vejam minha configuração:

dns_nameservers 172.x.x.x <------   Esse DNS aqui é outra servidor na rede.

http_port 2201
visible_hostname proxy-xxxxx

acl all src 0.0.0.0/0.0.0.0
acl manager proto cache_object
acl localhost src 127.0.0.1/255.255.255.255

acl SSL_ports port 443          # https
acl SSL_ports port 563          # snews
acl SSL_ports port 873          # rsync
acl Safe_ports port 80          # http
acl Safe_ports port 21          # ftp
acl Safe_ports port 443         # https
acl Safe_ports port 70          # gopher
acl Safe_ports port 210         # wais
acl Safe_ports port 631         # cups
acl Safe_ports port 873         # rsync
acl purge method PURGE
acl CONNECT method CONNECT

http_access allow manager localhost
http_access deny manager
http_access allow purge localhost
http_access deny purge
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports

acl liberados url_regex -i "/etc/squid/liberados"
http_access allow liberados

acl redelocal src 172.x.x.x/16
acl redelocal src 10.x.x.x/16
acl redelocal src 201.x.x.x/26

http_access allow localhost
http_access allow redelocal

http_access deny all

cache_mem 300 MB

maximum_object_size_in_memory 64 KB

cache_dir aufs /var/spool/squid 2048 16 256

minimum_object_size 2 KB

maximum_object_size 512 MB

cache_swap_low 90
cache_swap_high 95

access_log /var/log/squid/access.log squid

logfile_rotate 10

redirect_program /usr/bin/squidGuard
redirect_children 10

acl QUERY urlpath_regex cgi-bin \?
cache deny QUERY

refresh_pattern ^ftp:           15      20%     2280
refresh_pattern ^gopher:        15      0%      2280
refresh_pattern .               15      20%     2280

acl apache rep_header Server ^Apache
broken_vary_encoding allow apache

extension_methods REPORT MERGE MKACTIVITY CHECKOUT

#error_directory /usr/share/squid/errors/Portuguese

hosts_file /etc/hosts

coredump_dir /var/spool/squid


Há algo de errado nesse squid.conf ou algo que pode ser otimizado para acabar (ou amenizar) com essa lentidão?

Desde já agradeço.

joserley

#1
Ola DWALL !!!

Tive um problema parecido com o seu e resolvi da seguinte forma:
- Mandei para o Squid
- Deletei todos as pastas de cache
- reinicializei o squid
- mandei reconfigurar o Squid.

No meu caso eu fiz assim:
/etc/init.d/squid stop
rm -rf /var/spool/squid/*
squid -z
squid -k reconfigure
/etc/init.d/squid init

Também mudei no squid.conf a linha do cache_dir ficando assim:
cache_dir ufs /var/spool/squid 2048 32 512

Bem... no meu caso deu certo. Só que eu uso o UBUNTU SERVER 10.04.
E você sabe cada caso é um caso né ?
Mas vale tentar...




dwall

Na linha cache_dir uso aufs como filesystem porque, pelo que vi na documentação do squid, o aufs processa bem mais requisições, pois é assíncrono, mas mesmo assim me parece que não surtiu efeito suficiente.  :-[

zekkerj

CitarSenhores, tive que reintalar o Squid 2.6.STABLE18 + SquidGuard + Bind9 num Ubuntu Server 8.04 recentemente e percebi que a partir daí os usuários começaram a reclamar com certa frequência de lentidão no acesso a qualquer site da internet, pois antes do procedimento era tudo uma maravilha.
A máquina é virtual num VMware Server, com proc. Core 2 Duo 1,86Ghz e 1,5 GB de RAM. Funciona como servidor proxy e DNS.
Vejam minha configuração:

dns_nameservers 172.x.x.x <------   Esse DNS aqui é outra servidor na rede.
Se vc aponta o dns do squid pra outro servidor, pq perdeu tempo instalando o bind9 local? ;)

Outra coisa, passou da hora de atualizar o servidor. Aproveita que vc roda como máquina virtual e instala um servidor novo...

Por fim, squid rápido depende de memória e disco. Vc já viu se sua máquina não está fazendo swap? Se estiver, seu desempenho pode ir no chão, dependendo da quantidade de swap que esteja fazendo.

Citação de: dwall online 09 de Junho de 2011, 13:20
Na linha cache_dir uso aufs como filesystem porque, pelo que vi na documentação do squid, o aufs processa bem mais requisições, pois é assíncrono, mas mesmo assim me parece que não surtiu efeito suficiente.  :-[
Eu já tentei usar o aufs no meu servidor squid... o resultado foi que depois de 2 dias, meu squid caiu. Parece que o squid tem problemas com o aufs, e "perde" descritores de arquivos. De acordo com o volume de tráfego, isso acaba fazendo com que a máquina esgote o limite de descritores de arquivos depois de alguns dias.

Resultado: tive que voltar pra ufs.

Pesquise antes de perguntar, sua dúvida pode já ter sido respondida.
Não respondo dúvidas por MP, coloque sua dúvida no fórum onde ela pode ser pesquisada pelos seus colegas!
Não venha ao fórum apenas para perguntar. Se você sabe a resposta de um problema, porque não ajudar seu colega? ;D

dwall

zekkerj, mas eu comecei usando o ufs, só que mudei pro aufs justamente pra ver se melhorava a performance do squid. Pelo menos até agora o servidor ou o squid nunca "sentaram".
Quanto à swap, no momento (em expediente) tem 2.7MB em uso e 592MB de RAM livre. Outro detalhe que notei também após a reinstalação é que talvez o squid não esteja aproveitando a memória RAM como deveria, pois há muita memória livre e antigamente só sobravam em torno de 15MB.
Quanto aos descritores, veja a saída do squidclient:

File descriptor usage for squid:
   Maximum number of file descriptors:   1024
   Largest file desc currently in use:    860
   Number of file desc currently in use:  820
   Files queued for open:                   0
   Available number of file descriptors:  204
   Reserved number of file descriptors:   100
   Store Disk files open:                  16
   IO loop method:                     epoll



zekkerj

Com certeza você tem poucos clientes... minha rede tem em torno de 600 máquinas, com 1024 descritores meu squid nem dá partida. Tive que ajustar o sistema (que roda sobre SUSE SLES) pra 4096 FDs.

Procure acompanhar diariamente o consumo de FDs, se você perceber que a quantidade de FDs em uso está aumentando diariamente, reinicie o Squid pra recuperar os FDs perdidos, e reavalie se vai continuar usando o aufs.

De volta ao problema da lentidão... como eu disse, o squid depende de memória, disco e cpu. Acompanhe o  uso dos três, um dos três é a causa da lentidão.
Pesquise antes de perguntar, sua dúvida pode já ter sido respondida.
Não respondo dúvidas por MP, coloque sua dúvida no fórum onde ela pode ser pesquisada pelos seus colegas!
Não venha ao fórum apenas para perguntar. Se você sabe a resposta de um problema, porque não ajudar seu colega? ;D

emanoeljulio

Vou te dar uma força ... administro vários servidores... todos em escolas. E recentemente resolvi atualizar alguns deles de 8.04 para 10.04.
Eu costumo utilizar um script que configura todos os serviços necessários, mas para a minha surpresa notei que durante a instalação do sarg o pc ficava muito lento chegando a travar em alguns casos.
Pensei o pacote do sarg esta com algum problema, entaum resolvi remove-lo do script... ótimo instalou !!!!!
Felizão reiniciei o servidor e vamos testa-lo ... caraca muito lento e o led do HD piscando como louco... pensei o que esta fazendo o hd trabalhar tando ???? e descobri que o mesmo estava enchendo rapidamente. Procurando encontrei vários arquivos /var/tmp/DBD* que lotavam o HD e dono era o usuário PROXY. matei a charada, o squidGuard esta criando todos esses arquivos. Verifique se o seu problema é o mesmo, a solução é simples, basta remover o squidGuard e instalar a versão do site. ha e com o sarg tudo certo 8)