MySQLTuner を使用して MySQL(MariaDB) のチューニングを行なう
はじめに
MySQLTuner を使用して、MySQL(MariaDB) のチューニングを行います。
注意事項
コマンドはすべて root 権限での操作です。
目次
環境
- VPS : さくらVPS 1G SSD
- OS : CentOS 7.3
- その他 : MariaDB 5.5.52, MySQLTuner 1.6.0
MySQLTuner とは
MySQLTuner は、Perl で書かれたスクリプトで、パフォーマンスと安定性を高めるためのチューニングについてのポイントを表示してくれます。
インストール
yum を利用してインストールします。
# yum --enablerepo=epel install mysqltuner
MySQLTuner の実行
以下のコマンドを入力して実行します。ユーザー名とパスワードを入力するよう求められるので、管理者権限のあるユーザーを入力します。
# mysqltuner -buffers
Please enter your MySQL administrative login: <ユーザー名>
Please enter your MySQL administrative password: <パスワード>
MySQLのチューニングに関する内容が項目毎に表示されます。
- Storage Engine Statistics : ストレージエンジンの統計についての項目
- Security Recommendations : セキュリティの推奨事項についての項目
- Performance Metrics : パフォーマンス指標についての項目
- MyISAM Metrics : MyISAM指標についての項目
- InnoDB Metrics : InnoDB指標についての項目
- AriaDB Metrics : AriaDB指標についての項目
- Replication Metrics : レプリケーション指標についての項目
- Recommendations : 推奨事項についての項目
MySQL(MariaDB) のチューニング
ここでは、実際の MariaDB に対して、MySQLTuner を使用してチューニングを行ないます。まずは MySQLTuner を実行し、最後に表示される推奨事項を確認します。
# mysqltuner -buffers
.....
-------- Recommendations -----------------------------------------------------
General recommendations:
Run OPTIMIZE TABLE to defragment tables for better performance
Enable the slow query log to troubleshoot bad queries
When making adjustments, make tmp_table_size/max_heap_table_size equal
Reduce your SELECT DISTINCT queries which have no LIMIT clause
Set thread_cache_size to 4 as a starting value
Variables to adjust:
query_cache_size (>= 8M)
tmp_table_size (> 16M)
max_heap_table_size (> 16M)
thread_cache_size (start at 4)
一般的な推奨事項と、調整する変数についての情報が表示されるので、それぞれ確認していきます。
MariaDB の設定を変更する
上記の内容を元に、MariaDB の設定ファイルを変更します。ここではスロークエリをログに出力し、各種変数を調整してみます。
# vi /etc/my.cnf.d/server.cnf
server.cnf
[mysql]
slow_query_log = 1
long_query_time = 1
slow_query_log_file = /var/log/mariadb/slow_query.log
query_cache_size = 16M
tmp_table_size = 32M
max_heap_table_size = 32M
thread_cache_size = 4
MariaDB を再起動します。