Wednesday, November 11, 2009

245% improvement of MySQL performance in 1 year

When I did sysbench benchmarks 1 year ago I used a
4-socket server, a Linux kernel based on 2.6.18 and
MySQL 5.1. The sysbench readwrite numbers I got then
was around 2700. When I run the same benchmarks
now the numbers I get are 9300.

These improvements obviously comes from a mixture
of HW development, OS development (now using
a 2.6.31 based kernel) and MySQL development.

The machine is still a 4-socket server, the operating
system is still Linux and the database is still MySQL,
but the performance has improved by 245%. Needless
to say this is an extraordinary performance
improvement in just one year and clearly shows that
the both the HW industry and the open source SW
industry is quickly picking up on how to improve
performance using multi-core multi-socket servers.


ymg said...

Can you please post the HW/OS/MySQL config for both scenarios

6thSense said...

So what was the hardware used and MySQL versions - then and now?

Mikael Ronstrom said...

The MySQL version then was MySQL 5.1.28 and now MySQL 5.4.3 with the LOCK_open, LOCK_threadcount and LOCK_alarm improvements and running with InnoDB adaptive hashing off.

venu said...

Can you give more insight on configuring those or did you add any patch to control Lock* ?

Mikael Ronstrom said...

The LOCK_* changes are patches that I am currently working on getting into an official MySQL tree. They remove the LOCK_alarm, LOCK_threadcount as being part of every query and decreases the time LOCK_open is held in a query.

hingo said...

Hi Mikael

Just wanted to say congratulations to everyone behind this work and thanks for sharing the results!

Of course, a big part of these improvements have been available some time, but this post is one of the simplest summaries of the topic that I've seen. MySQL development was well ahead of Moore's curve!