MySQLTuner是一個用Perl編寫的腳本,允許快速查看MySQL安裝並進行調整以提高性能和穩定性。 檢索當前配置變量和狀態數據,並以簡短格式顯示,並提供一些基本性能建議。
除了MySQL外,也支援了MariaDB、Percona各版本的資料庫,詳細的資源列表可參閱該專案中的說明。
下載MySQLTuner
cd /opt
wget http://mysqltuner.pl/ -O mysqltuner.pl
wget https://raw.githubusercontent.com/major/MySQLTuner-perl/master/basic_passwords.txt -O basic_passwords.txt
wget https://raw.githubusercontent.com/major/MySQLTuner-perl/master/vulnerabilities.csv -O vulnerabilities.csv
執行MySQLTuner
perl mysqltuner.pl
也可以將mysqltuner變成執行檔
chmod +x mysqltuner.pl
下次就能直接執行下列指令
./mysqltuner.pl
執行完後會給一份建議,再根據建議做調整
啟動performance schema
performance schema預設是關閉的,所以要透過修改my.cnf開啟
vi /etc/my.cnf
[mysqld]
performance_schema = on
安裝sysschema
MariaDB 10.x預設並沒有安裝sysschema,可透過下列指令安裝
curl "https://codeload.github.com/good-dba/mariadb-sys/zip/master" > mariadb-sys.zip
unzip -l mariadb-sys.zip
unzip mariadb-sys.zip
cd mariadb-sys-master/
mysql -u root -p < ./mariadb_sys_install.sql
systemctl restart mariadb
驗證
執行 perl mysqltuner.pl後,可以看到Performance schema的內容已經從
變成
禁用innodb_stats_on_metadata
因為Metadata的統計訊息更新有可能會嚴重影響資料庫伺服器及MySQLTuner的效能,所以需關閉innodb_stats_on_metadata
登入MySQL並執行下列命令關閉
mysql
set global innodb_stats_on_metadata = 0;
備註:有些文件說,my.cnf文件中也要設定,如果因不明原因變慢時,再到my.cnf文件中加入,這裡先依照MySQLTuner文件中的說明,不先加入下列敘述
[mysqld]
innodb_stats_on_metadata = 0
另外可以在my.cnf中再設置下列敘述,如果將條件設定為2會在I/O上有顯著的差異,但如果MySQL崩潰或是伺服器發生故障時,MySQL上的數據會丟失一秒鐘
[mysqld]
innodb_flush_log_at_trx_commit = 2
參考網址:
https://github.com/major/MySQLTuner-perl