+ Responder ao Tópico



  1. #1
    bzanelatto
    Visitante

    Padrão Squid Lento demais...não aguenta as conexões com cache_peer

    Fala galera, seguinte...estou com o seguinte problema
    eu montei um proxy interno...para controlar algumas coisas que o meu proxy principal localizado na PRODESP não bloqueia.

    Configurações:
    FreeBSD 6.1
    XEON 3.0
    1GB RAM
    40 SCSI
    2 placas GIGA
    "ps: ela nao faz nat..somente forward"

    Esta máquina..esta funcionando como Hierarquia de proxy, ou seja, ele
    é um proxy antes do outro proxy, tive q instalar ele pra filtrar
    coisas que o proxy 2 não filtra..

    Até ae. blz..compilei a ultima versão estavel do squid..com diskd..
    igualzinho ao artigo da FUG..e tambem a versão 2.5.STABLE10

    mas galera....o acesso á paginas está muito lento..as vezes nem abre
    as páginas..
    esta maquina está segurando uns 160 usuários.

    Eu ja não sei mais oq fazer.....pq se eu tiro o proxy 1 e deixo as
    pessoas navegar direito pelo proxy 2 , como eles estavam antes...a
    internet volta a ficar rapida.
    então logo..o gargalo ta no meu proxy.
    vou postar a configuração do meu squid.conf


    http_port 80
    icp_port 0
    #hierarchy_stoplist cgi-bin ?
    acl QUERY urlpath_regex cgi-bin \?
    no_cache deny QUERY
    visible_hostname proxy2

    ############## CACHE MEM ###########################
    cache_mem 512 MB
    cache_swap_low 85
    cache_swap_high 95

    ############# CACHE DIR ###########################
    cache_dir ufs /usr/cache 5000 16 256

    ############# ROUND ROBIN ??? ######################
    cache_peer 10.1.6.81 parent 80 0 no-query round-robin
    cache_peer 10.1.6.82 parent 80 0 no-query round-robin
    cache_peer 10.1.6.87 parent 80 0 no-query round-robin
    cache_peer 10.1.6.90 parent 80 0 no-query round-robin
    cache_peer 10.1.6.83 parent 80 0 no-query round-robin
    cache_peer 10.1.6.84 parent 80 0 no-query round-robin
    cache_peer 10.1.6.85 parent 80 0 no-query round-robin
    cache_peer 10.1.6.86 parent 80 0 no-query round-robin
    cache_peer 10.1.6.87 parent 80 0 no-query round-robin
    cache_peer 10.1.6.90 parent 80 0 no-query round-robin
    ############# LOGS ##############################
    cache_access_log /var/log/squid/access.log
    cache_log /var/log/squid/cache.log
    cache_store_log /var/log/squid/store.log
    ############# PID. ####################
    pid_filename /var/log/squid/squid.pid

    ######### USUARIO PARA RODAR O SQUID ###########
    # Usuario sob o qual ira rodar o Squid.
    cache_effective_user squid
    # Grupo sob o qual ira rodar o Squid.
    cache_effective_group squid

    ######## ACL PADRAO TODA REDE ####################
    acl all src 0.0.0.0/0.0.0.0

    # Bloqueia IP para acesso a NET
    acl ipnegado src "/usr/local/etc/squid/regras/IPBlock"

    # Regraepara bloqueio de extensões de rádios online / arquivos de streaming:
    acl streaming rep_mime_type -i ^video/x-ms-asf
    acl streaming rep_mime_type -i ^application/vnd.ms.wms-hdr.asfv1$
    acl streaming rep_mime_type -i application/vnd.ms.wms-hdr.asfv1
    acl proibir_musica urlpath_regex -i "/usr/local/etc/squid/regras/Musicblock"
    acl download url_regex -i "/usr/local/etc/squid/regras/Downblock"
    acl downloadsrp rep_mime_type application/octet-stream application/zip Video/.* audio/.* msi/.*
    acl Negados url_regex -i "/usr/local/etc/squid/regras/Negados"
    acl SitesAllow url_regex -i "/usr/local/etc/squid/regras/Livres"
    acl Livres src "/usr/local/etc/squid/regras/IPLivre"
    #acl semcache url_regex -i "/usr/local/etc/squid/regras/semcache"
    #Agora comeca o squid default
    acl manager proto cache_object
    acl localhost src 127.0.0.1/255.255.255.255
    acl to_localhost dst 127.0.0.0/8
    acl rede_interna src 10.30.1.0/24
    acl SSL_ports port 443 563 # https, snews
    acl SSL_ports port 873 # rsync
    acl Safe_ports port 80 # http
    acl Safe_ports port 21 # ftp
    acl Safe_ports port 443 563 # https, snews
    acl Safe_ports port 70 # gopher
    acl Safe_ports port 210 # wais
    acl Safe_ports port 1025-65535 # unregistered ports
    acl Safe_ports port 280 # http-mgmt
    acl Safe_ports port 488 # gss-http
    acl Safe_ports port 591 # filemaker
    acl Safe_ports port 777 # multiling http
    acl Safe_ports port 631 # cups
    acl Safe_ports port 873 # rsync
    acl Safe_ports port 901 # SWAT
    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
    icp_access allow all
    http_access allow Livres
    http_access allow SitesAllow
    http_access deny ipnegado
    http_access deny Negados
    http_access allow download Livres
    http_access deny download
    http_reply_access allow downloadsrp Livres
    http_reply_access deny downloadsrp
    http_reply_access allow streaming Livres
    http_reply_access deny streaming
    http_access deny proibir_musica
    http_access allow localhost
    http_access allow rede_interna
    http_access deny all
    http_reply_access allow all
    #icp_access allow all
    coredump_dir /var/spool/squid
    never_direct allow all
    #httpd_accel_host virtual
    #httpd_accel_port 80
    #httpd_accel_with_proxy on
    #httpd_accel_uses_host_header on
    cache_log on


    Então..o diagrama de rede esta assim


    Usuarios --- 3com(gigabit) -- Proxy2 (10/1000) --- Roteador --- Frame Relay --- Prodesp (PROXY ) --- INTERNET

    TUNNING NO SISTEMA

    sysctl.conf

    kern.maxfiles=131392
    kern.maxfilesperproc=16424
    kern.ipc.somaxconn=8192
    kern.ipc.maxsockbuf=8388608
    net.inet.tcp.always_keepalive=1
    net.inet.tcp.keepidle=24000
    net.inet.tcp.keepintvl=3000
    net.inet.tcp.keepinit=70000
    net.inet.tcp.rfc1323=1
    net.inet.tcp.rfc1644=1
    net.inet.ip.intr_queue_maxlen=50
    net.inet.tcp.rfc1644=1

    cat /boot/loader.conf
    autoboot_delay="2"
    beastie_disable="YES"
    kern.ipc.nmbclusters=1024
    kern.ipc.maxsockets=1024


    KERNELLLLLLLLLL

    # Suporte a memoria compartilhada.
    options SYSVSHM

    # Maximo de segmentos de memoria compartilhada por processo.
    options SHMSEG=16

    # Numero maximo de identificadores de memoria compartilhada.
    options SHMMNI=32

    # Tamanho maximo de segmento de memoria compartilhada.
    options SHMMAX=2097152

    # Numero maximo de paginas de memoria compartilhada.
    options SHMALL=4096

    # Suporte a filas de mensagens.
    options SYSVMSG

    # Numero maximo de bytes por fila de mensagem.
    options MSGMNB=16384

    # Numero maximo de identificadores de filas de mensagens.
    options MSGMNI=41

    # Numero maximo de segmentos de mensagem no sistema.
    options MSGSEG=2049

    # Tamanho de um segmento de mensagem.
    options MSGSSZ=64

    # Numero maximo de mensagens no sistema.
    options MSGTQL=2049


    TO COM ESTE PROBLEMA A 3 MESES E NAO CONSIGO ACHAR A SOLUÇÃO
    ALGUEM PODE ME AJUDAR ???

    OBRIGADO

  2. #2

    Padrão

    Tente diminuir o tamanho do cache e a quantidade de memória para algo em torno de 64 MB. Embora o seu disco seja um disco SCSI, tente forçá-lo um pouco menos e aproveite mais a sua arquitetura de cache.


    Abraços!

  3. #3

    Padrão

    ja tentou tirar o cache_peer ?

    para hd scsi .. tente usar AUFS no cachedir

  4. #4

    Padrão

    Em alguns sistemas operacionais, aufs é melhor, mas fique com o diskd.

  5. #5
    bzanelatto
    Visitante

    Unhappy

    Bom..se eu tirar o cache_peer meus usuários nao navegam..pois eles são os proxys da prodesp..
    eu fiz um teste
    coloquei a memoria para 64mb só..
    diminui o cache para 500
    fiz o nat com o divert...
    coloquei mais 1 placa de rede..e fiz um nat padrão
    eu colocando 1 maquina somente para passar ficar lento ainda..
    demora ...para abrir as paginas..
    realmente nao tenho ideia
    to perdido

  6. #6
    bzanelatto
    Visitante

    Padrão

    ninguem tem ideia do q pode ser?

  7. #7

    Padrão

    tem dns local ? tenta rodar um servidor de dns local..

  8. #8
    bzanelatto
    Visitante

    Padrão

    é..dns na propria maquina ele não tem..
    posso tentar..mas acha q mudaria algo ?!

  9. #9

    Padrão

    Isso tem cara de dns.
    Eu colocaria um dns na maquina, com a opcao "dns_nameservers" no squid e removeria o diretorio de cache, recriaria (squid -z).

    Quem sabe isso resolva para voce...
    valeu?

  10. #10

    Padrão

    dns eh sempre importante. ainda mais para o squid que faz consultas com muita frequencia.. esse tempo sendo reduzido ao maximo.. ajuda o squid bastante...

  11. #11
    bzanelatto
    Visitante

    Padrão

    tendi...eu nao tava afim de mandar um bind 9 nessa maquina nao...mas se for necessario..
    mas...sera q o dnsmasq resolveria ? ao inves de colocar o bind

  12. #12

    Padrão

    Nao precisa colocar dns na propria maquina, voce pode direcionar para algum dns da sua rede interna. Só evite colocar para dns publico

  13. #13

    Padrão

    dependendo do movimento do teu server.. eh melhor ser LOCAL..

    0.040ms contra 0.600ms da rede local... isso para nos eh pouco.. mas em ciclos de clock isso eh mto ... mto mesmo

  14. #14
    bzanelatto
    Visitante

    Padrão

    acabei instalando o dnsmasq no servidor e fiz os testes de resolucao de nome com o DIG localmene e realmente percebi um ganho de performance...
    mas as paginas ainda demoram pra carregar..o pior q eu ate peguei um cisco 2900 e deixei isolado numa rede separada....e mesmo assim da uma diferenca grande...ta sinistro viu

  15. #15

    Padrão

    ja que vc tem um cisco.. use wccpv2 ... faça o teste...

    faça o cisco passar as requisicoes para o squid