When analyzing how good or bad response time is it is not handy to look at the averages, min or max times – something what is easily computed using built in aggregate functions. We most likely would like to see some percentile numbers – 95 percentile or 99 percentile. The problem is computing these in [...]
Tuning InnoDB Concurrency Tickets
InnoDB has an oft-unused parameter innodb_concurrency_tickets that seems widely misunderstood. From the docs: “The number of threads that can enter InnoDB concurrently is determined by the innodb_thread_concurrency variable. A thread is placed in a queue when it tries to enter InnoDB if the number of threads has already reached the concurrency limit. When a thread [...]
What do we optimize with mk-query-digest ?
When we’re looking at mk-query-digest report we typically look at the Queries causing the most impact (sum of the query execution times) as well as queries having some longest samples. Why are we looking at these ? Queries with highest Impact are important because looking at these queries and optimizing them typically helps to improve [...]
mysql-proxy, urgh performance and scalability ?
For one our project I needed proxy solution, and mysql-proxy is one of well-known, so it was logical first choice. The obvious question which come in mind is what performance penalty we have using mysql-proxy, version 0.7.1. So it is easy to test. (By the way sysbench recently was pushed to Launchpad, see lp:sysbench, and [...]
Goal driven performance optimization
When your goal is to optimize application performance it is very important to understand what goal do you really have. If you do not have a good understanding of the goal your performance optimization effort may well still bring its results but you may waste a lot of time before you reach same results as [...]
Computing 95 percentile in MySQL
When doing performance analyzes you often would want to see 95 percentile, 99 percentile and similar values. The “average” is the evil of performance optimization and often as helpful as “average patient temperature in the hospital”. Lets set you have 10000 page views or queries and have average response time of 1 second. What does [...]
Evaluating IO subsystem performance for MySQL Needs
I’m often asked how one can evaluate IO subsystem (Hard drive RAID or SAN) performance for MySQL needs so I’ve decided to write some simple steps you can take to get a good feeling about it, it is not perfect but usually can tell you quite a lot of what you should expect from the [...]

