[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