+ Responder ao Tópico



  1. #1

    Padrão Desempenho de Cache do Squid

    Pessoal, tenho um provedor aqui com uns 400 clientes, média ON diária de uns 150 clientes. Uso uma RB800 para o controle de banda e MAC, com redirect de proxy (direto sem intermedio do web cache do mk) numa maquina dedicada para um proxy Squid no Debian.
    Sistema:
    Debian Linux proxy 2.6.38-2-amd64 #1 SMP Sun May 8 13:51:57 UTC 2011 x86_64 GNU/Linux

    Configuração da Maquina Servidora:
    Link da Maquina: 3 ADSLs Modo PCC Mikrotik - 1x 8 Mbps e 2x 4 Mbps
    2x Processadores
    Intel(R) Core(TM)2 Duo CPU [email protected] 2.80GHz
    cache size 3072 KB
    2x HDs Samsung 320GB somados em RAID Striping
    Desempenho no hdparm: (com o squid rodando)
    Timing buffered disk reads: 614 MB in 3.01 seconds = 204.25 MB/sec

    8GB RAM DDR2 800 Dual Channel

    cache_mem 2GB
    maximo objeto memoria = 2 MB
    maximo objeto em disco = 32MB
    250GB de cache de disco - sistema diskd
    cache_dir diskd /var/spool/squid 250000 64 256 Q1=64 Q2=72
    memory_replacement_policy heap GDSF
    cache_replacement_policy heap LFUDA
    demais configuracoes do squid sao as padroes

    Aqui um grafico do MRTG do cache HIT do meu squid:
    http://sgcu.dyndns.org:8090/link/proxy.html

    Aqui o grafico de uso dos meus links:
    http://sgcu.dyndns.org:8090/link/

    Apos 10 dias de uso, tenho 70GB de cache de disco e no momento 4GB de RAM em utilizacao.
    Abaixo informacoes do comando squidclient -p 3128 mgr:info

    Connection information for squid:
    Number of clients accessing cache: 2
    Number of HTTP requests received: 6105418
    Number of ICP messages received: 0
    Number of ICP messages sent: 0
    Number of queued ICP replies: 0
    Number of HTCP messages received: 0
    Number of HTCP messages sent: 0
    Request failure ratio: 0.00
    Average HTTP requests per minute since start: 1262.5
    Average ICP messages per minute since start: 0.0
    Select loop called: 128409021 times, 2.260 ms avg
    Cache information for squid:
    Request Hit Ratios: 5min: 34.5%, 60min: 36.4%
    Byte Hit Ratios: 5min: 17.1%, 60min: 18.5%
    Request Memory Hit Ratios: 5min: 33.2%, 60min: 36.1%
    Request Disk Hit Ratios: 5min: 35.1%, 60min: 33.4%
    Storage Swap size: 66424320 KB
    Storage Mem size: 2047956 KB
    Mean Object Size: 20.36 KB
    Requests given to unlinkd: 260
    Median Service Times (seconds) 5 min 60 min:
    HTTP Requests (All): 0.39928 0.39928
    Cache Misses: 0.49576 0.55240
    Cache Hits: 0.00562 0.00286
    Near Hits: 0.42149 0.33943
    Not-Modified Replies: 0.00000 0.00000
    DNS Lookups: 0.22276 0.23291
    ICP Queries: 0.00000 0.00000

    Resource usage for squid:
    UP Time: 290158.425 seconds
    CPU Time: 3640.924 seconds
    CPU Usage: 1.25%
    CPU Usage, 5 minute avg: 1.78%
    CPU Usage, 60 minute avg: 1.94%
    Process Data Segment Size via sbrk(): 3313480 KB
    Maximum Resident Size: 13400400 KB
    Page faults with physical i/o: 9
    Memory usage for squid via mallinfo():
    Total space in arena: -880824 KB
    Ordinary blocks: -881559 KB 629 blks
    Small blocks: 0 KB 0 blks
    Holding blocks: 45084 KB 3 blks
    Free Small blocks: 0 KB
    Free Ordinary blocks: 734 KB
    Total in use: -836475 KB 100%
    Total free: 734 KB 0%
    Total size: -835740 KB
    Memory accounted for:
    Total accounted: 2900451 KB
    memPoolAlloc calls: 911542535
    memPoolFree calls: 895689561
    File descriptor usage for squid:
    Maximum number of file descriptors: 1024
    Largest file desc currently in use: 862
    Number of file desc currently in use: 811
    Files queued for open: 0
    Available number of file descriptors: 213
    Reserved number of file descriptors: 100
    Store Disk files open: 0
    IO loop method: epoll
    Internal Data Structures:
    3307731 StoreEntries
    369453 StoreEntries with MemObjects
    369359 Hot Object Cache Items
    3262311 on-disk objects


    Gostaria de compartilhar com voces todos essas informacoes acima, se estou com um bom proxy configurado ou se ha algo para melhorar a taxa de hits. So lembrando que nao tenho interesse algum em solucoes como ThunderCache, quero apenas o squid mesmo, algum ajuste fino de suas configuracoes apenas. Pois pelo que vi, tenho tanto de disco como de memoria uma taxa de 30% de sucesso em hits, isso eh muito ou ha algo ainda para ajustar?

    Estou aberto a sugestoes. Abracos a todos da comunidade.
    Última edição por jabsnet; 13-06-2011 às 09:24.

  2. #2
    Eng. Eletricista/Eletrôni Avatar de MarceloGOIAS
    Ingresso
    Feb 2007
    Localização
    Goiânia
    Posts
    2.120
    Posts de Blog
    2

    Padrão Re: Desempenho de Cache do Squid

    Bom dia,

    Por que "cachear" arquivos de no máximo 32MB?
    Sempre deixo maior, pois muitos vídeos, programas, arquivos de atualização do Windows, dentre outros, quase sempre ultrapassam 32MB.



  3. #3

    Padrão Re: Desempenho de Cache do Squid

    Site com dicas espetaculares, pena ser em malaio:
    Squid Proxy

    Seguir o passo a passo do post:
    Squid Proxy: PROXY UBUNTU 10.10 64 bit dengan squid 2.7 stable9 with pacth cache video youtube

    e realmente funciona, mas no caso como nao achei o fonte do squid com o patch referido, usei o link abaixo para fazer o patch manual:
    ConfigExamples/DynamicContent/YouTube - Squid Web Proxy Wiki

    Estudando um pouco dah para fazer tudo o que o thundercache faz usando somente o squid e com um desempenho espetacular, com a vantagem do gerenciamento de memoria melhor do squid.

    Obs: Uso ubuntu 11.04 server 64bits
    Para conseguir os fontes do squid:
    sudo apt-get source squid
    Última edição por amaia; 13-06-2011 às 09:08.

  4. #4

    Padrão Re: Desempenho de Cache do Squid

    Citação Postado originalmente por MarceloGOIAS Ver Post
    Bom dia,

    Por que "cachear" arquivos de no máximo 32MB?
    Sempre deixo maior, pois muitos vídeos, programas, arquivos de atualização do Windows, dentre outros, quase sempre ultrapassam 32MB.
    Sim, mas como disse eu não uso soluções de cache dinamico, por isso deixei em 32MB. Com a dica logo abaixo, se der certo ae sim penso em 128MB e ate um cache de disco maior, ja que tenho memoria suficiente para indexa-lo.

    Citação Postado originalmente por amaia Ver Post
    Site com dicas espetaculares, pena ser em malaio:
    Squid Proxy

    Seguir o passo a passo do post:
    Squid Proxy: PROXY UBUNTU 10.10 64 bit dengan squid 2.7 stable9 with pacth cache video youtube

    e realmente funciona, mas no caso como nao achei o fonte do squid com o patch referido, usei o link abaixo para fazer o patch manual:
    ConfigExamples/DynamicContent/YouTube - Squid Web Proxy Wiki

    Estudando um pouco dah para fazer tudo o que o thundercache faz usando somente o squid e com um desempenho espetacular, com a vantagem do gerenciamento de memoria melhor do squid.

    Obs: Uso ubuntu 11.04 server 64bits
    Para conseguir os fontes do squid:
    sudo apt-get source squid
    Eh justamente isso que procuro, um ajuste fino do Squid para cache dinamico, sem solucoes de terceiros.

    Mas e pela atual configuracao, que acharam o HIT Rate está bom?

    Hoje completa 11 dias e em termos brutos chegou a 2,5 Mbps de economia de banda (veja grafico) com 21 GB de dados economizados.

    Info do ifconfig:
    RX bytes:159251374955 (148.3 GiB) TX bytes:182163021875 (169.6 GiB)



  5. #5

    Padrão Re: Desempenho de Cache do Squid

    Bom, não sou muito de postar em forum não, mas vamos lá!

    Só a nivel de informação o squid consome 14Mb de memoria para cada GB de cache_dir então o seu squid vai estar consumindo 3.5 GB só para indexar o disco quando ele estiver cheio, mas está bom pela quantidade de memoria que você tem, o ideal é que você tenha um cache_dir que demore mais de 1 Mês pra ficar cheio, já que quanto mais tempo um arquivo leva em cache, maior a probabilidade de você conseguir um HIT nele, e pelo andar da carruagem o seu vai levar +- isso já que já tem 11 dias rodando, agora aconselho que para melhorar o proxy junto com as politicas que setou em memory_replacement_policy e cache_replacement_policy efetuar as seguintes configurações:

    Setar o tamanho maximo de objeto em disco para algo em torno de 64MB e 128MB. Pelo tamanho do cache_dir pode usar 128Mb sem problemas.

    Setar o tamanho maximo de objeto em memoria para 128 KB no maximo, mas aconselho colocar 64 KB, afim de aumentar o "Request Memory Hit Ratios" que é a quantidade de HITS solicitados da memoria e diminuir o a porcentagem de HITS de arquivos solicitados do disco "Request Disk Hit Ratios", já que o tamanho medio dos arquivos do seu cache está em 20 KB aproximadamente e normalmente a maior parte dos arquivos da internet são realmente pequenos, e como o disco é muito mais lento que a memoria ram, então é interessante que os arquivos pequenos que são muito mais numerosos sejam pegos da memoria e o sistema só vá em disco para arquivos maiores. Com isso vai perceber que o "Median Service Times" principalmente o "HTTP Requests (All)" deve baixar um bocado, deve ficar uns 0.25 acredito que até menos, nos teste que fiz com o Lusca cache recompilado para não usar o ulinkd consigo service times na casa dos 0.14, não vou pedir para aumentar o cache_mem por que nos meus testes com esse tamanho de cache_dir o squid vai começar a fazer swap de memoria quando o cache_dir estiver cheio, e 2GB de cache_mem e 250GB de cache_dir é um bom balanço para o que quer.

    Para aumentar o Hit Rate e o Byte Rate de forma segura aconselho a usar os refresh_patterns retirados do site abaixo:

    Linux.com :: Speed up your Internet access using Squid's refresh patterns

    Os que o amigo passou acima, realmente consegue milagres, mas como milagres não existem, você no final vai ter mais dor de cabeça com refresh_patterns tão agressivos, falo por experiencia propria, já utilizei os mesmo e foi só problemas, no hotmail e mais um bando de site ai que aparecia o que o ultimo usuario tinha puxado da rede, isso quando não o login, e ou a caixa de entrada do e-mail do ultimo usuario, loucura total! rs

    Bom com isso ai que passei deve conseguir um Hit rate de 40%-45%, sendo que uns 55% desses hits devem ser memory hits e um byte Rate na casa dos 25%-35% isso depois do cache já rodando a algum tempo, mas vai sentir a mudança no squid logo nos primeiros dias.

    Dependendo da versão do Squid você pode usar um storeurl_rewriter pro youtube e ganhar mais uns % a mais e até passar de 50% de byte rate dependendo do uso de sua rede.

    Se for fazer as alterações, se poddivel poste o feedback das alterações se for efetuar, e qualquer coisa estou no e-mail [email protected].


    Abraços,


    Anderson Aráujo.

  6. #6

    Padrão Re: Desempenho de Cache do Squid

    Bom, não sou muito de postar em forum não, mas vamos lá!<br><br>Só a
    nivel de informação o squid consome 14Mb de memoria para cada GB de
    cache_dir então o seu squid vai estar consumindo 3.5 GB só para indexar o
    disco quando ele estiver cheio, mas está bom pela quantidade de memoria
    que você tem, o ideal é que você tenha um cache_dir que demore mais de 1
    Mês pra ficar cheio, já que quanto mais tempo um arquivo leva em cache,
    maior a probabilidade de você conseguir um HIT nele, e pelo andar da
    carruagem o seu vai levar +- isso já que já tem 11 dias rodando, agora
    aconselho que para melhorar o proxy junto com as politicas que setou em
    memory_replacement_policy e cache_replacement_policy efetuar as
    seguintes configurações:<br>
    <br>
    Setar&nbsp; o tamanho maximo de objeto em disco para algo em torno de 64MB e
    128MB. Pelo tamanho do cache_dir pode usar 128Mb sem problemas.<br><br>Setar
    o tamanho maximo de objeto em memoria para 128 KB no maximo, mas
    aconselho colocar 64 KB, afim de aumentar o "Request Memory Hit Ratios"
    que é a quantidade de HITS solicitados da memoria e diminuir o a
    porcentagem de HITS de arquivos solicitados do disco "Request Disk Hit
    Ratios", já que o tamanho medio dos arquivos do seu cache está em 20 KB
    aproximadamente e normalmente a maior parte dos arquivos da&nbsp; internet
    são realmente pequenos,&nbsp; e como o disco é muito mais lento que a memoria
    ram, então é interessante que os arquivos pequenos que são muito mais
    numerosos sejam pegos da memoria e o sistema só vá em disco para
    arquivos maiores. Com isso vai perceber que o "Median Service Times"&nbsp;
    principalmente o "HTTP Requests (All)" deve baixar um bocado, deve ficar
    uns 0.25 acredito que até menos, nos teste que fiz com o Lusca cache
    recompilado para não usar o ulinkd consigo service times na casa dos
    0.14, não vou pedir para aumentar o cache_mem por que nos meus testes
    com esse tamanho de cache_dir o squid vai começar a fazer swap de
    memoria quando o cache_dir estiver cheio, e 2GB de cache_mem e 250GB de
    cache_dir é um bom balanço para o que quer. <br>
    <br>
    Para aumentar o Hit Rate e o Byte Rate de forma segura aconselho a usar os refresh_patterns retirados do site abaixo:<br>
    <br>
    http://www.linux.com/archive/feature/153221<br><br>Os que o amigo passou
    acima, realmente consegue milagres, mas como milagres não existem, você
    no final vai ter mais dor de cabeça com refresh_patterns tão
    agressivos, falo por experiencia propria, já utilizei os mesmo e foi só
    problemas, no hotmail e mais um bando de site ai que aparecia o que o
    ultimo usuario tinha puxado da rede, isso quando não o login, e ou a
    caixa de entrada do e-mail do ultimo usuario, loucura total! rs<br>
    <br>
    Bom com isso ai que passei deve conseguir um Hit rate de 40%-45%, sendo
    que uns 55% desses hits devem ser memory hits e um byte Rate na casa dos
    25%-35% isso depois do cache já rodando a algum tempo, mas vai sentir a
    mudança no squid logo nos primeiros dias.<br><br>Dependendo da versão
    do Squid você pode usar um storeurl_rewriter pro youtube e ganhar mais
    uns % a mais e até passar de 50% de byte rate dependendo do uso de sua
    rede.<br><br>Se for fazer as alterações, se possivel poste o feedback
    das alterações que for efetuar, e qualquer coisa estou no e-mail
    [email protected].<br><br><br>Abraços,<br><br><br>Anderson Aráujo.



  7. #7

    Padrão Re: Desempenho de Cache do Squid

    Obrigado pelas dicas, eu ja estava pensando em colocar somente 32K no maior objeto de memória, e de disco colocarei 128MB. Irei fazer uns testes com esses refreshs ae, ve se muda algo ou se so ira dar dor de cabeça. Quanto a cache de disco, acho que não terei problemas pois como postei acima os hds somados em raid ta dando 200 MB/s de leitura.

  8. #8

    Padrão Re: Desempenho de Cache do Squid

    Opa. Os refresh_patterns do site que passei acima pode utilizar sem problemas, na verdade tem outras otimizações de refresh_patterns, mas ai é coisa de analisar site a site, caso a caso.

    Em relação aos discos, o indicado é trabalhar com eles em Jbod mesmo, e deixar o squid controlar o acesso, pois se houver uma falha você vai perder 50% do cache utilizando 2 hds, e não 100% em caso de falha do raid 0. O item mais importante para o squid no uso do disco é o access time, que para hds sata de 7200rpm fica na casa dos 15ms aproximadamente, com essa maquina e seguindo as recomendações que passei, o seu cache dá pra atender até uns 1200 usuarios online simultaneos sem problemas, e novamente repito, sempre tenha em mente que deve priorizar o memory hit rate para evitar o acesso a disco na busca de arquivos pequenos, pois diminui em muito a velocidade de atendimento do cache.

    Estas dicas que estou te dando, são baseadas em experiencia propria, pois que precisei medir a fundo o desempenho do squid, para implementar um proxy que acredito atender até 10000 clientes, mas no momento será utilizado só para atender 5000 clientes simultaneos. Isso em um Xeon Quad, com 24GB de memoria, 4 HDs SAS de 174GB para cache, e setando 12GB de cache_mem para o Squid, agora estou rodando o Lusca cache para o proxy.

    Anderson



  9. #9

    Padrão Re: Desempenho de Cache do Squid

    OK, fiz as modificacoes sugeridas, agora vamos aguardar. Daki uns dias eu posto aqui como ficou. Obrigado.

  10. #10

    Padrão Re: Desempenho de Cache do Squid

    Apos 10 dias e os ajustes finos, tenho direto picos de 2 Mbps de economia de banda. O Link de 16 Mbps esta com 4 Mbps de folga.

    No momento sao 130GB de cache com 5GB de memoria em uso.

    Foram economizados 47GB em tráfego.
    Info de Rede: RX bytes:464704249232 (432.7 GiB) TX bytes:514970476787 (479.6 GiB)

    Se olharem o grafico do meu Proxy (esse grafico eh baseado no CACHE HIT)
    http://sgcu.dyndns.org:8090/link/proxy.html

    Vera que dia apos dia esta aumentando a media de Cache HIT, ou seja, quanto mais tempo rodando sem pausas (reiniciar a maquina por ex) melhor o Proxy, principalmente o de memoria tem uma taxa maior de Hits.

    Para finalizar o relatorio do squidclient:

    Connection information for squid:
    Number of clients accessing cache: 2
    Number of HTTP requests received: 17271305
    Number of ICP messages received: 0
    Number of ICP messages sent: 0
    Number of queued ICP replies: 0
    Number of HTCP messages received: 0
    Number of HTCP messages sent: 0
    Request failure ratio: 0.00
    Average HTTP requests per minute since start: 1219.9
    Average ICP messages per minute since start: 0.0
    Select loop called: 382733845 times, 2.219 ms avg
    Cache information for squid:
    Request Hit Ratios: 5min: 37.8%, 60min: 35.2%
    Byte Hit Ratios: 5min: 17.2%, 60min: 15.7%
    Request Memory Hit Ratios: 5min: 38.1%, 60min: 35.7%
    Request Disk Hit Ratios: 5min: 28.1%, 60min: 33.9%
    Storage Swap size: 126890248 KB
    Storage Mem size: 2559876 KB
    Mean Object Size: 22.33 KB



  11. #11

    Padrão Re: Desempenho de Cache do Squid

    Esta usando os refresh_patterns que indiquei? Me diga como esta os access time do squid, o http all diminuiu?Anderson

  12. #12

    Padrão Re: Desempenho de Cache do Squid

    Sim. Estou usando o que vc passou e diminuiu consideravelmente. De 0.39 esta assim agora:

    Median Service Times (seconds) 5 min 60 min:
    HTTP Requests (All): 0.23230 0.22004
    Cache Misses: 0.35832 0.37825
    Cache Hits: 0.00000 0.00865
    Near Hits: 0.23230 0.17711
    Not-Modified Replies: 0.00000 0.00000
    DNS Lookups: 0.19488 0.19488
    ICP Queries: 0.00000 0.00000



  13. #13

    Padrão Re: Desempenho de Cache do Squid

    Pessoal, vim aqui atualizar voces, hoje completo 2 meses do Proxy rodando sem pausas.

    Vamos aos fatos:

    Tenho no momento 380GB de cache (limite de 400GB)

    Uso de memoria em 7300 MB (3GB cache de transito e 4,3GB de indice do squid)

    Baixados 1,6 TB com envio de 2 TB (economia de 400GB ou 6 GB diarios)

    Média de 2 Mbps com picos de 3,6 Mbps de banda economizada diariamente.