twitter在mysql5.5源生版本上优化了在NUMA系统下内存的分配,改进了服务器端语句超时的支持,支持更多的状态,输出和恢复innodb buffer pool,优化mysql对ssd设备的支持。
添加的状态变量:
1. innodb文件和表空间的打开,关闭,正在打开的次数。
2. 死锁的次数,原来只有在show engine innodb status中看到。
3. 即时LSN和刷新LSN,还有checkpoint位置,这个信息之前也只有在innodb status中看到。
当NUMA为innodb buffer pool分配大量的内存时会遇到一些没有效率和严重的问题。twitter针对NUMA添加了一些优化选项:
1. 是否强制innodb 启动的时候预分配整个buffer pool.这个是主要导致强制操作系统决定分配哪个page,哪个NUMA节点分配改page.
2. 是否把在所有NUMA节点交错分配内存的启动选项 numactl --interleave=all放入mysql_safe
3.是否linux启动之前清空buffer cache
innodb buffer pool内存空间数据的备份和恢复,重启innodb的时候把之前关闭时的状态的数据导入到内存,减少加载数据的时间。
percona也已经实现了上述大多数功能。
github:https://github.com/twitter/mysql