Optimizing MySQL without SQL or touching my.cnf
At Dropbox, with 1000s of machines running MySQL, performance is important. Among other things, out team is responsible for our MySQL servers being tuned well. In this talk, we will talk about the performance impact of “environmental” MySQL tuning, where the tuning is neither at the SQL level (like creating indexes or using different table structures), nor with setting MySQL parameters (tuning parameters like innodbbufferpoolsize or innodblogfilesize even more obscure ones like innodblruscan_depth). Instead, in the talk we will cover the following areas (we won’t limit the talk to these):
- Operating system level tuning opportunities
- Compiling MySQL: does it worth to build your own from the performance perspective?
- Building MySQL with different compilers
- Building MySQL with profile-guided optimization
- Impact of using different memory allocators
- CPU and memory affinity with running multiple instances
The experiments we conducted here helped us to make more educated decisions about how to run MySQL at Dropbox.