[FUG-BR] Importação de SQL muito mas muito lento

Marcelo Gondim gondim em bsdinfo.com.br
Sábado Outubro 29 09:10:15 BRST 2011


Em 28/10/2011 14:46, Leonardo Augusto escreveu:
> Vou se dar uma sugestao de amigo.
>
> Nao existe servidor que o IO de disco fique bom sem um raid 10(por
> exemplo) numa boa controladora dedicada a isso...
>
> Se o teu problema for IO de disco.. pense em por uma controladora
> descente e monte um raid 10, se quer desempenho.
Eu fiz um aqui de teste usando zfs (RaidZ) e ficou bem legal a 
performance ainda mais que eu tinha bastante memória (12Gb) e 5 discos 
sata ii de 500Gb.
O problema aqui não estava relacionado ao I/O embora estivesse usando 
bastante I/O no processo de importação. No dia à dia o I/O é bem baixo.

Grande abraço e obrigado pela sugestão.
>
> []´s
>
>
> 2011/10/28 Marcelo Gondim<gondim em bsdinfo.com.br>:
>> Em 28/10/2011 11:48, Leonardo Augusto escreveu:
>>> Esta fazendo insert em myisam ou innodb ?
>> Em myisam
>>> Innodb precisa ser configurado corretamente, ele so funciona bem com muita ram.
>>> Uma dica, é a de configurar o innodb para gerar um arquivo para cada
>>> tabela, e com isso nao socar tudo naquele mega file ibdata....
>>> Quanda vc tem mega tabelas, facilita em muito a manutencao,
>>> principalmente a liberacao de espaco fisico, ja que o ibdata nao
>>> regride o tamanho..
>>> E quanda é um file per table, vc da um drop table e libera o espaco fisico..
>>>
>>> http://dev.mysql.com/doc/refman/5.0/en/innodb-multiple-tablespaces.html
>>>
>>> Voce tunou o kernel do seu bsd ? Ou é o generic ?
>> Kernel tá tunado.
>>
>>> O fs esta como ? soft_updates ? Quanto tem de ram na maquina ?
>> soft_updates. quanto à ram a máquina que está com o hd só tem 2Gb mesmo
>> :(  mas esse hd irá para a máquina definitiva que é um quad com 8Gb de
>> ram. Só to usando essa máquina para baixar o backup para o sistema novo
>> mesmo.
>> Tudo indica que são os índices mesmos e anotei o lance do innodb com
>> múltiplas table spaces.  :)
>>
>>>
>>> 2011/10/28 Marcelo Gondim<gondim em bsdinfo.com.br>:
>>>> Em 28/10/2011 10:52, Welkson Renny de Medeiros escreveu:
>>>>> Marcelo Gondim escreveu:
>>>>>> Olá pessoal,
>>>>>>
>>>>>> Montei um sistema FreeBSD novo em um HD Sata II cujo teste de velocidade
>>>>>> deu uns 85MB/s usando o dd como testador. Até aqui tranquilo.
>>>>>> No servidor Linux eu fiz um mysqldump da base que levou um tempo
>>>>>> considerável de uns 20 minutos por aí me gerando um arquivo SQL de 1.6Gb.
>>>>>> Eis que peguei esse sql e fui importar no MySQL do FreeBSD que montei,
>>>>>> coisa que até agora fazia normalmente sendo que dessa vez já tem 4 horas
>>>>>> que está importando e ainda não acabou.
>>>>>> Coloquei até um time na frente do comando para que quando acordasse
>>>>>> pudesse ver o tempo que levou mas acordei e ainda está fazendo.
>>>>>>
>>>>>> Tirando a possibilidade do hd estar com problemas porque havia feito uns
>>>>>> testes e não tinha encontrado nada, alguém faz idéia do que pode estar
>>>>>> causando essa lentidão absurda? :(
>>>>>>
>>>>>> Instalei o mytop para ver o que ocorria e tá lá a instrução:
>>>>>>
>>>>>> MySQL on localhost
>>>>>> (5.0.92-log)
>>>>>> up 0+05:05:26 [09:59:23]
>>>>>>      Queries: 1.3k   qps:    0 Slow:   758.0         Se/In/Up/De(%):
>>>>>> 00/86/00/01
>>>>>>                  qps now:    1 Slow qps: 0.0  Threads:    2 (   2/   1)
>>>>>> 00/00/00/00
>>>>>>      Key Efficiency: 89.0%  Bps in/out: 64.2k/ 1.3k   Now in/out:  21.0/202.8k
>>>>>>      Master: mysql-bin.000004/130386302 do:  ign:
>>>>>>
>>>>>>            4      root       localhost    amavisd         0  Query INSERT
>>>>>> INTO `msgs` VALUES
>>>>>> (0,'Xd-lNqGsr21c','OAKrnkFF6DbX','03004-03-238',1302211535,'20110407T212535Z',1
>>>>>>            9      root       localhost    amavisd         0  Query show
>>>>>> full processlist
>>>>>>
>>>>>>            9      root       localhost    amavisd         0  Query show
>>>>>> full processlist
>>>>>>            4      root       localhost    amavisd         8  Query INSERT
>>>>>> INTO `msgs` VALUES
>>>>>> (0,'Xhh-6D2A2Km3','uZFrbYygiyc3','15174-04',1313098381,'20110811T213301Z',16434
>>>>>>
>>>>>>            9      root       localhost    amavisd         0  Query show
>>>>>> full processlist
>>>>>>            4      root       localhost    amavisd        29  Query INSERT
>>>>>> INTO `msgs` VALUES
>>>>>> (0,'Xhh-6D2A2Km3','uZFrbYygiyc3','15174-04',1313098381,'20110811T213301Z',16434
>>>>>>
>>>>>>            9      root       localhost    amavisd         0  Query show
>>>>>> full processlist
>>>>>>            4      root       localhost    amavisd        14  Query INSERT
>>>>>> INTO `msgs` VALUES
>>>>>> (0,'XmRZtbsqKoWA','Fy5S22U8sVHv','27252-03-28',1302225807,'20110408T012327Z',12
>>>>>>
>>>>>> Pensei: nossa o mysql deve estar consumindo uns 200% de CPU e aí no top
>>>>>> vejo que ele está apenas com 0.00%:
>>>>>>
>>>>>>      2092 mysql       12  44    0   489M   119M ucond   0  18:47  0.05% mysqld
>>>>>>      2134 root         1  44    0 19900K  4708K sbwait  1   0:21  0.00% mysql
>>>>>>
>>>>>> No dmesg não acusa nenhuma mensagem e nem no messages. Realmente não
>>>>>> entendo porque não acabou de importar ainda
>>>>> Uma boa prática na inserção de grandes quantidades de dados é antes
>>>>> remover os índices.
>>>>> Quando concluir a inserção, recria.
>>>>>
>>>>> Isso melhora o muito o desempenho.
>>>>>
>>>>> Índice é bom para consulta, para inserção deixa o processo bem mais lento.
>>>>>
>>>>



Mais detalhes sobre a lista de discussão freebsd