今天给大家安利一个MySQL工具MySQLTuner,它可以给你一些MySQL配置上的建议,用于提升性能和稳定性,基本的原理就是检查系统variables配置和status状态数据。
为什么要推荐呢?在《实战MySQL参数调优》自己也调优了一些参数,如果有工具针对性的给一些建议就完美了,所以找到了该工具,当然不能迷信工具,工具是协助判断的,对于配置还是要知道其基本含义才能进行调整。
另外通过该工具,可以长期关注数据库的运行状况。
安装
安装:
wget http://mysqltuner.pl/ -O mysqltuner.pl
chmod +x mysqltuner.pl
然后运行:
perl mysqltuner.pl --host targetDNS_IP --user admin_user --pass admin_password
perl mysqltuner.pl --cvefile=vulnerabilities.csv #检查有没有安全漏洞
perl mysqltuner.pl --silent --outputfile /tmp/result_mysqltuner.txt #保存到文件中
Sysschema
在《如何度量mysql性能等指标》提到过mysql5.7才有的sys库,在mysql5.6版本也可以安装:
curl "https://codeload.github.com/mysql/mysql-sys/zip/master" > sysschema.zip
unzip sysschema.zip
cd mysql-sys-master
mysql -uroot -p < sys_56.sql
具体运行结果
以下是我个人站点的MySQL,比如性能指标:
可以看出pool buffer配置的比较低,也有一定的慢查询,最大连接数并不高,锁竞争不大,在磁盘中的临时表占比比较大,读写比是4:1。
接下去就是InnoDB的一些配置,可见有很大的优化空间:
最终也给了一些建议:
其中MySQL’s maximum memory usage is dangerously high表示如果到达最大连接数,sort、join等会话级参数相乘,buffer会超过最大物理内存,当然极端情况才会出现。