Existe alguma ferramenta disponível que possa fazer testes de estresse usando o arquivo de log criado pelo log geral do MySQL? Depois de muita pesquisa no google, encontrei algumas ferramentas de teste de estresse que usam apenas alguns benchmarks para teste de estresse. Uma solução é usar o Apache JMeter, mas ele não cria planos de teste a partir do arquivo de log do MySQL e criar um plano de teste personalizado para todas as consultas que tenho consome muito tempo.
Ou existe uma ferramenta que pode pelo menos criar um arquivo .sql a partir do log do MySQL?
relate perguntas
-
Existem ferramentas de benchmarking do MySQL? [fechado]
-
Onde posso encontrar o log lento do mysql?
-
Como posso otimizar um mysqldump de um banco de dados grande?
-
Quando é o momento certo para usar o MariaDB em vez do MySQL e por quê?
-
Como um grupo pode rastrear alterações no esquema do banco de dados?
Aqui está uma abordagem mais direta usando o mysql de força bruta: Configure o geral como uma tabela MyISAM. Na instalação, você encontrará a tabela
mysql.general_log
como uma tabela CSV.Em vez de reinventar a roda e digitar muito, leia minhas postagens anteriores:
Nov 16, 2011
: Registre consultas e usuários de alteração do banco de dados MySQLFeb 11, 2012
: Registro geral do MySQLJan 08, 2012
: Como ativar o log geral do MySQL?Uma vez
mysql.general_log
convertido para MyISAM e as consultas gravadas, basta acessar o log como qualquer outra tabela MyISAM.Aqui está a estrutura da versão MyISAM de
mysql.general_log
A partir daqui, basta escrever todo o conteúdo começando com uma consulta:
Ai está.
De uma chance !!!
Este é apenas um traço e não uma solução completa, "sua" solução é baseada em sua fantasia (e algum trabalho) ;)
Eu fiz esse tipo de teste capturando e limpando a consulta gerada pelo log de consulta geral e usando o sysbench 0.5 depois de escrever meu próprio
lua
arquivo, você pode encontrar algumas amostras no código-fonte oficial , em um espelho do meu banco de dados (hw e schema/data -um instantâneo para que eu possa restaurar o status original dos dados imediatamente-).Então você pode executar um comando como este:
./sysbench --mysql-table-engine=myisam --mysql-db=<yourdb> --mysql-user=<user> --mysql-host=<host> --mysql-password=<pass> --test=tests/db/<yourlua>.lua --num-threads=8 --max-requests=8 run
Colete e represente graficamente seus resultados, alterando simultaneidade e solicitações, e monitore seu banco de dados e o status de HW.
Meu
lua
arquivo contém cerca de 80.000 consultas e é composto por inserir, atualizar e excluirATUALIZAÇÃO #1
Um bom ponto de partida que você pode tentar é começar (simplesmente) escrevendo seu
lua
arquivo assim:Colocar sua consulta na
db_query("")
função, limpar seu log de consulta geral para esse tipo de processo requer um pouco de trabalhoAqui uma saída simples de um arquivo "pessoal"
lua
, como o acima, com 9 consultas, 7 inserts e 2 selects, +2 BEGIN/COMMIT:Espero que isto ajude