Estou dando uma apresentação prática daqui a algumas semanas. Parte desta demonstração é para solucionar problemas básicos do mysql, incluindo o uso do log de consultas lentas. Eu criei um banco de dados e instalei nosso aplicativo, mas é um banco de dados limpo e, portanto, difícil de gerar problemas suficientes.
Eu tentei o seguinte para obter consultas no log de consultas lentas:
Defina o tempo de consulta lento como 1 segundo.
Vários índices excluídos.
Salientou o sistema:
stress --cpu 100 --io 100 --vm 2 --vm-bytes 128M --timeout 1m
Script algumas chamadas básicas da página da Web usando o wget.
Nada disso gerou consultas lentas. Existe outra maneira de forçar artificialmente o banco de dados a gerar problemas? Não tenho habilidades suficientes para escrever um Jmeter complexo ou outro gerador de carga. Espero, talvez, algo embutido no mysql ou outro truque do linux além do estresse.
fonte
Respostas:
Caixa mysqlslap . Você pode passar uma das consultas do seu aplicativo da web com --query e especificar clientes simultâneos com --concurrency.
fonte
Totalmente artificial, mas você pode usar a
sleep()
função:No log:
fonte
LOCK TABLES
funcione. Isso pode ser muito desajeitado também.DO SLEEP(10);
se você não quiser o resultado do SLEEP na sua consulta.Talvez o ajuste do banco de dados possa ajudar? Por exemplo, reduzindo o tamanho dos key_buffers?
fonte