Best practices for running MySQL virtualized
Many administrators still feel that virtualizing your database is not a best practice. Tons of tips and tricks and white papers about the subject are available, but they only seem to add to the confusion.
Our goal at the Sizing Servers Lab was to end the confusion. Benchmarking with realworld mysql databases we checked the effect of many optimizations when running mysql on VMware ESXi, KVM and Xen.We went for a bottom up approach. First we tested how much difference the hardware choices make. One of the most famous results of our research are the performance and power measurements upon the Facebook OpenCompute servers (see here: http://www.anandtech.com/show/4958/facebooks-open-compute-server-tested/7). Dell, HP, Supermicro, Intel and many others supported our efforts by sending their best servers to our lab. (http://www.anandtech.com/show/3846/quad-xeon-7500-the-best-virtualized-d..., http://www.anandtech.com/show/3894/server-clash-dellr815)
Next we started experimenting with BIOS settings. After that we went for hypervisor settings and guest OS tuning. And last but not least we started optimizing the MySQL settings, inspired by the numerous Percona blogs. Optimizing every layer of your application server can deliver some spectacular results. What sets our research apart is that we confirmed all our findings with cold hard benchmark numbers, mostly done on realworld databases and the occasional Sysbench.
Our findings have been tried out and confirmed in the field. Several SMEs have implemented our best practices. Now we like to share them with the MySQL and Percona community. In this session we will show you the optimal choices and settings for running a mysql database on a virtualization platform, starting from the server hardware and ending in the My.cnf settings.