search
LoginSignup
44

More than 5 years have passed since last update.

posted at

MariaDBのチューニングにもMySQLTunerが役立つぞ、という話

この記事は?

  • DBのチューニングは運用に合わせ適切に施す必要がある。
  • アプリケーションの特性や構成なども絡むので、具体的に「何をどれだけ」という仕切りがわかりにくい。
  • MySQLではMySQLTunerというPerlプログラムでチューニングポイントを調べることが出来た。
  • この記事においてはMariaDBでも同ツールが使えたよ、ということを提示する。

MySQLTuner導入・実行

環境情報

項目 情報
CentOS CentOS Linux release 7.2.1511
Perl v5.16.3
MariaDB mysql Ver 15.1 Distrib 5.5.47-MariaDB, for Linux (x86_64) using readline 5.1

MySQLTunerとは

簡単にいうと「MySQLのチューニング診断をしてくれるアプリケーション」です。
PostgreSQLにおけるPgTuneをCUIで確認するもの、と考えてもらえば大体正しいです。

MySQLTuner
ライセンスはGNU GPLなので無料で利用可能です。

導入と使い方

ダウンロードとインストール

DBが導入されているサーバ上にて作業し、
適当なディレクトリにて展開してください。
Perlプログラムなので、実行権限を与えてあげるだけでOK、コンパイルなどは発生しません。

# cd /usr/local/src/
# wget -O mysqltuner.zip https://github.com/rackerhacker/MySQLTuner-perl/archive/master.zip 
# unzip mysqltuner.zip
# rm mysqltuner.zip
# cd MySQLTuner-perl-master
# chmod 755 mysqltuner.pl

前述の公式HPよりやや古いバージョンでもよければ、
epelのリポジトリにも登録されていますので
yumで取得することも可能です。

# yum install mysqltuner
================================================================================
 Package             アーキテクチャー
                                     バージョン             リポジトリー   容量
================================================================================
インストール中:
 mysqltuner          noarch          1.6.0-1.el7            epel           45 k

トランザクションの要約
================================================================================
インストール  1 パッケージ

総ダウンロード容量: 45 k
インストール容量: 156 k

実行方法

そのまま実行ファイルを叩くだけ。簡単お手軽。
ただ、オプションにあるbuffersを付与すると情報が細かくなるのでおすすめ。

# perl mysqltuner.pl --buffers
 >>  MySQLTuner 1.6.13 - Major Hayden <major@mhtx.net>
 >>  Bug reports, feature requests, and downloads at http://mysqltuner.com/
 >>  Run with '--help' for additional options and output filtering

[--] Skipped version check for MySQLTuner script
Please enter your MySQL administrative login: root
Please enter your MySQL administrative password:
[OK] Currently running supported MySQL version 5.5.47-MariaDB-log
[OK] Operating on 64-bit architecture
<略>

実行結果からの考察

各項目の見方

下記の大項目別に分けて内容が表示されます。

大項目 和訳
Storage Engine Statistics ストレージ統計
Security Recommendations セキュリティ警告
CVE Security Recommendations CVEセキュリティ警告
Performance Metrics パフォーマンス指標
Performance schema パフォーマンススキーマ
ThreadPool Metrics スレッドプール指標
MyISAM Metrics MyISAM指標
AriaDB Metrics AriaDB指標
InnoDB Metrics InnoDB指標
TokuDB Metrics TokuDB指標
Galera Metrics Galera指標
Replication Metrics レプリケーション指標
Recommendations 勧告

チューニングポイント

  • 『[OK]』と表示されている箇所は現在の設定にて問題が無い(不足していない)ことを意味します。
  • 『[!!]』と表示されている箇所は現在の設定にて問題がある(不足している)ことを意味します。
  • 最下部の『Recommendations』にてチューニングポイントを提示してくれるので、概ね記載の内容に沿ってチューニングしていましょう。

実行例

自分の環境ではあれこれ出てきましたので一例として記録します。

Security Recommendations

[!!] User 'root@::1' has no password set.
  • IPv6からの接続の場合がうっかり漏れていたようです。

CVE Security Recommendations

[!!] CVE-2016-0546 : Candidate
[!!] CVE-2016-2047 : Candidate
[!!] CVE-2016-2047 : Candidate
[!!] 3 CVE(s) found for your MySQL release.
  • 使用しているMariaDBのバージョンが脆弱性の対象のようです。
  • どこかのタイミングでアップデートしないと・・・

Recommendations

query_cache_type (=0)
join_buffer_size (> 2.0M, or always use indexes with joins)
innodb_buffer_pool_instances(=2)
  • それぞれのパラメータの設定値を変更しなさい、とのお達し。
  • メモリ全体とのバランスをみつつそれぞれ設定変更しましょう

まとめ

さくっとわかりやすい表示でチューニングポイントが見ることが出来るので、重宝しています。
そんなに頻度を高く定期取得してもしょうがないとは思いますが、
長期運用などを見据える場合には都度、確認すると良いかと思います。


以上

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
44