October 30, 2014

Why not make a tool to improve existing configurations?

A couple of users of our very popular MySQL Configuration Wizard have submitted feedback such as “I’d love to input my existing server settings and get suggestions on how to improve it.”

This sounds like it would be great, doesn’t it? We’ve considered doing this, and even partially implemented it. But during our pre-release testing, we found a lot of potentially serious problems with the idea. It turns out to be very subtle — perhaps too subtle to be done with any computer program, no matter how smart, because there might be a lot of assumptions it’s forced to make, which could turn out to be dangerous. Every approach we considered carried a high risk of de-optimizing a server so it performs worse than before.

So in the end, although our tool is excellent for creating a starting my.cnf, my old blog post about the ultimate my.cnf tuner tool, which claims that an expert human is the only safe way to do this, might be an evergreen truth.

PS: my favorite user feedback so far is this one:

Great job, very good results! Now please take it offline before I am rendered obsolete. :(

About Baron Schwartz

Baron is the lead author of High Performance MySQL.
He is a former Percona employee.

Comments

  1. Richard Ayotte says:

    Maybe importing the non-performance settings like character set would be beneficial.

  2. Tomas Jacik says:

    Hi Baron,

    do You heared about mysqltunner.pl? Maybe this way of tunning existing mysql conf is the right one – run script on mysql machine and analyze what is needed.

  3. Richard: that’s a possibility.

    Tomas: *facepalm*

  4. It might be unclear what exactly the challenge with existing configurations is. When we configure brand new server we can suggest some typical variable values and when let DBA adjust for his special circumstances. For example need for quick crash recovery might require resizing Innodb log files to be smaller than typical. However when we look at adjusting existing configuration we can’t really make a difference between variables set to unusual value due to special need or by mistake/lack of knowledge.

    Though it is possible to do something along the lines of pt-variable-advisor which would flag unusual settings and ask whenever it was really meant to be set this way.

Speak Your Mind

*