Take the 2-minute tour ×
Server Fault is a question and answer site for professional system and network administrators. It's 100% free, no registration required.

I'm giving a hands on presentation in a couple weeks. Part of this demo is for basic mysql trouble shooting including use of the slow query log. I've generated a database and installed our app but its a clean database and therefore difficult to generate enough problems.

I've tried the following to get queries in the slow query log:

Set slow query time to 1 second.

Deleted multiple indexes.

Stressed the system:

stress --cpu 100 --io 100 --vm 2 --vm-bytes 128M --timeout 1m

Scripted some basic webpage calls using wget.

None of this has generated slow queries. Is there another way of artificially stressing the database to generate problems? I don't have enough skills to write a complex Jmeter or other load generator. I'm hoping perhaps for something built into mysql or another linux trick beyond stress.

share|improve this question
    
+1 For asking to get slow quries. If only it was this way around in real cases :D –  red Jun 30 '11 at 10:51
add comment

3 Answers

up vote 3 down vote accepted

Checkout mysqlslap. You can pass one of your webapp's queries with --query and specify concurrent clients with --concurrency.

share|improve this answer
    
This worked best... using this and a combination of database de-tuning. –  Gray Race Jul 1 '11 at 17:57
add comment

Totally artificial but you can use the sleep() function:

select sleep(10);

In the log:

Time                 Id Command    Argument
# Time: 110629 16:19:13
# User@Host: mysql[mysql] @ localhost []
# Query_time: 10.000218  Lock_time: 0.000000 Rows_sent: 1  Rows_examined: 0
SET timestamp=1309389553;
select sleep(10);
share|improve this answer
    
Thanks for the suggestion... It does get the log to grow, but I'd like to have them be legit queries for the app. This way in I can demo explain and other diagnostic tools. –  Gray Race Jun 29 '11 at 23:32
    
:) Hmm...maybe a strategic LOCK TABLES will work. That may be too kludgy as well. –  Mark Wagner Jun 29 '11 at 23:56
    
Usually select * from ((select * from database)x) and keep getting more and more recrusive does the trick for me. –  alexy13 Jun 3 at 15:49
add comment

Perhaps de-tuning the database might help? For example reducing the key_buffers size?

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.