[FUG-BR] squid lento
João Carlos Mendes Luís
jonny em jonny.eng.br
Quarta Agosto 29 22:58:54 BRT 2007
Lutieri G. wrote:
> Sr.
>
> Estou ainda investigando o motivo da lerdeza. Porém constatei algo
> muuuito estranho.
> Ativei o soft-updates na partição /cache que não estava ativo. E
> deletei o RAID 1 existe. Estou trabalhando apenas com um disco.
>
> Verifiquem:
>
> # mount /cache/
> # mount
> /dev/da0s1a on / (ufs, local)
> devfs on /dev (devfs, local)
> /dev/da0s1e on /tmp (ufs, local, soft-updates)
> /dev/da0s1f on /usr (ufs, local, soft-updates)
> /dev/da0s1d on /var (ufs, local, soft-updates)
> devfs on /var/chroot/named/dev (devfs, local)
> /dev/da0s2a on /cache (ufs, local, soft-updates)
Faltou o noatime...
>
> # cat /usr/local/etc/squid/squid.conf | egrep "^cache_dir\ diskd"
> cache_dir diskd /cache/1 5120 16 256 Q1=128 Q2=100
> cache_dir diskd /cache/2 5120 16 256 Q1=128 Q2=100
>
> #time squid -z
> 2007/08/29 12:58:34| Creating Swap Directories
> 0.114u 0.280s 0:02.44 15.9% 1926+25448k 190+0io 0pf+0w
> #
>
>
> Enquanto isso em outra janela:
> # iostat -c 100
> tty da0 da1 pass0 cpu
> tin tout KB/t tps MB/s KB/t tps MB/s KB/t tps MB/s us ni sy in id
> 0 132 7.87 24 0.18 0.23 0 0.00 0.00 0 0.00 0 0 0 0 100
> 0 232 0.00 0 0.00 0.00 0 0.00 0.00 0 0.00 0 0 0 0 100
> 1 598 15.32 73 1.09 0.00 0 0.00 0.00 0 0.00 3 0 2 0 95
> 0 1003 2.44 3597 8.58 0.00 0 0.00 0.00 0 0.00 0 0 5 1 93
> 0 1233 2.71 2647 7.01 0.00 0 0.00 0.00 0 0.00 0 0 3 1 95
> 0 836 2.23 613 1.33 0.00 0 0.00 0.00 0 0.00 0 0 1 1 99
> 0 391 2.00 3 0.01 0.00 0 0.00 0.00 0 0.00 0 0 0 0 100
> 0 78 0.00 0 0.00 0.00 0 0.00 0.00 0 0.00 0 0 0 0 100
> 0 78 0.00 0 0.00 0.00 0 0.00 0.00 0 0.00 0 0 0 0 100
> 0 415 0.00 0 0.00 0.00 0 0.00 0.00 0 0.00 0 0 0 0 100
> 0 104 0.00 0 0.00 0.00 0 0.00 0.00 0 0.00 0 0 0 0 100
> ....
>
> Vejam que foi bastante rápido o processo do squid.
>
>
>
>
> Agora olhem isso:
>
> #umount /cache/
> #
> #
>
> #mount
> /dev/da0s1a on / (ufs, local)
> devfs on /dev (devfs, local)
> /dev/da0s1e on /tmp (ufs, local, soft-updates)
> /dev/da0s1f on /usr (ufs, local, soft-updates)
> /dev/da0s1d on /var (ufs, local, soft-updates)
> devfs on /var/chroot/named/dev (devfs, local)
> #
>
> #ls -la /cache/
> total 4
> drwxr-xr-x 2 squid squid 512 Aug 29 12:53 .
> drwxr-xr-x 22 root wheel 512 Aug 29 11:35 ..
>
>
> #time squid -z
> 2007/08/29 13:00:16| Creating Swap Directories
> 0.103u 0.475s 2:43.33 0.3% 1984+27457k 0+33096io 0pf+0w
>
> # iostat -c 100
> tty da0 da1 pass0 cpu
> tin tout KB/t tps MB/s KB/t tps MB/s KB/t tps MB/s us ni sy in id
> 0 133 7.51 25 0.19 0.23 0 0.00 0.00 0 0.00 0 0 0 0 100
> 0 245 0.00 0 0.00 0.00 0 0.00 0.00 0 0.00 0 0 0 0 100
> 1 675 9.20 70 0.63 0.00 0 0.00 0.00 0 0.00 2 0 0 0 97
> 0 405 9.00 232 2.04 0.00 0 0.00 0.00 0 0.00 0 0 0 0 100
> 0 386 9.06 234 2.07 0.00 0 0.00 0.00 0 0.00 0 0 0 0 100
> 0 520 9.52 234 2.17 0.00 0 0.00 0.00 0 0.00 0 0 0 0 100
> 0 363 9.50 222 2.06 0.00 0 0.00 0.00 0 0.00 0 0 0 0 100
> 0 724 9.80 194 1.86 0.00 0 0.00 0.00 0 0.00 0 0 0 0 99
> 0 454 9.04 185 1.63 0.00 0 0.00 0.00 0 0.00 0 0 0 0 100
> 0 402 9.35 187 1.71 0.00 0 0.00 0.00 0 0.00 0 0 0 0 100
> 0 389 9.12 175 1.56 0.00 0 0.00 0.00 0 0.00 0 0 0 0 100
> 0 449 10.63 199 2.07 0.00 0 0.00 0.00 0 0.00 0 0 0 0 100
> 0 537 9.57 186 1.74 0.00 0 0.00 0.00 0 0.00 0 0 0 0 100
> 0 378 9.10 218 1.94 0.00 0 0.00 0.00 0 0.00 0 0 0 0 99
> 0 385 9.00 224 1.97 0.00 0 0.00 0.00 0 0.00 0 0 0 0 100
> 0 397 9.03 233 2.05 0.00 0 0.00 0.00 0 0.00 0 0 0 0 100
> 0 394 9.53 206 1.92 0.00 0 0.00 0.00 0 0.00 0 0 0 0 100
> 0 743 9.44 207 1.91 0.00 0 0.00 0.00 0 0.00 0 0 0 0 100
> 0 417 9.03 229 2.02 0.00 0 0.00 0.00 0 0.00 0 0 0 0 100
> 0 395 8.97 231 2.02 0.00 0 0.00 0.00 0 0.00 0 0 0 0 100
> ....
>
> E continua....
>
> No momento em que estou escrevendo esse e-mail me dei conta de que
> quando desmonto o /cache ele fica sob /dev/da0s1a. E essa partição "a"
> está sem soft-updates ativo.
>
> ----- 10 min. depois
>
> Ativei o tal o soft-updates no /
> Não é que demorou 2 segundos pra rodar o squid -z
>
> Eu havia lido algumas coisas na internet sobre soft-updates mas nos
> teste que vi em sites a diferença com ele ativo e sem ele ativo não
> eram tão grandes.
>
> Conclusão: Sem o soft-updates ativo na partição /cache para rodar o
> squid -z demora em torno de 2min e 44 seg. Ativando o soft-update
> nessa partição e tempo caiu para 2 segundos.
Nao faça isso! O softupdates não é habilitado na partição raiz por dois motivos:
1) Se houver algum problema com o softupdates (durante muito tempo ele foi
considerado experimental, hoje não é mais o caso), o sistema consegue pelo menos
bootar para rodar o fsck.
2) O softupdates demora para liberar o espaço livre quando voce remove um
arquivo. Quando voce faz um upgrade, troca todos os binários do raiz, e pode
não ter espaço livre para isso.
Além disso, o raiz não deveria ser escrito com tanta frequencia. Alguns admins
mais paranoicos montam ele read-only, para voce ter uma idéia.
>
> A diferença é IMENSA.
>
> Bom... agora vou fazer uns teste e volto aqui pra finalizar essa thread.
>
> ********Só tem uma coisa! ***********
> Enquanto eu faço alguma operação pesada no sistema como, por exemplo,
> blogbench, o iostat me retorna uma taxa de 2MB/s. Olhando a saída do
> iostat acima vocês não acham que eu deveria ter um taxa de escrita
> muiiito superior a 2MB/s ?!?!? Sem contar que o systat -v mostra os
> mesmos valores e o disco 99% ou 100% ocupado..
>
> E não to lembrando agora, mas tenho a impressão de que um disco IDE
> tem uma taxa de 90MB/s.
Me diz qual que eu compro agora!!!
Meu disco IDE mais rápido é um Seagate SATA 250G com NCQ. Ele faz 60MB/s em
modo cru, ou seja, "dd if=/dev/ad0 of=/dev/null bs=32k". Se abaixar os 32k para
1k ou 512, fica mais lento que isso.
Mas isso é medida crua. Com o sistema operacional por cima, perde-se a maior
parte desse desempenho. E o desempenho depende de vários fatores:
- Numero de acessos simultaneos
- Tamanhos dos arquivos acessados (arquivos menores fazem o desempenho final
cair, esse é o caso do squid)
- Tamanho e quantidade de diretórios varridos para chegar a cada arquivo.
- Tipo do acesso ao arquivo (por exemplo, bancos de dados fazem fsync a cada
escrita, o que deixa o acesso por vezes insuportavelmente lento, mas garante que
os dados estarão integros mesmo se o computador for desligado sem aviso.)
- Espalhamento dos arquivo no disco
- File System utilizado. Por exemplo, FAT no FreeBSD é só para sistemas
dual-boot. O desempenho é insuportável.
Entre outros.
>
> Eu tendo um disco SAS não deveria ter algo em torno de 300MB/s ??
Mesmo supondo que voce tem um disco SAS de 6Gbit/s (uns 800MB/s), isso é somente
a velocidade do barramento. O determinante será a velocidade da mídia do disco.
E um disco SCSI de 7200RPM não tem por que um desempnho crú melhor que um
disco IDE de 7200RPM.
Claro, há vantagens: Hoje não devem mais se fabricar discos SCSI de 7200RPM, que
ainda são a maioria dos IDEs. E quem quer desempenho, pode pedir discos de
15000RPM, faz diferenca! Além disso, o tagged queueing ajuda muito quando
estamos falando de acesso do sistema operacional, com vários processos simultaneos.
De qualquer forma, 300MB/s está longe do que seria medido pelo sistema operacional.
Segunde este artigo:
http://www.wwpi.com/index.php?option=com_content&task=view&id=983&Itemid=87
Minhas medidas para o SATA estão de acordo com as dele. E ele fala que um SAS
chegaria a 90MB/s em acesso cru. Então, não conte em copiar um CD em 2
segundos. ;-)
>
> #pciconf -lv
> mpt0 at pci2:3:0: class=0x010000 card=0x30601000 chip=0x00501000 rev=0x02 hdr=0x00
> vendor = 'LSI Logic (Was: Symbios Logic, NCR)'
> class = mass storage
> subclass = SCSI
>
Manda o dmesg todo...
>
Mais detalhes sobre a lista de discussão freebsd