MySQLの状態がリアルタイムでわかるMySQL用topコマンド「mytop」と「innotop」
サーバのチューニングをする上でかなりやっかいなのがデータベース系。特にログファイルの量が膨大になると後から中身を見て問題を分析するのも一苦労という場合が。そんなときにこのMySQL用topコマンド「mytop」を使えば一体何が起きているのかがすぐにわかるので問題点の把握が容易になります。ベンチマークするときに併用すればかなり効率が良くなるのではないかと。
インストールと使い方は以下の通り。
まずは「mytop」から。以下が公式サイト。
mytop - a top clone for MySQL
http://jeremy.zawodny.com/mysql/mytop/
マニュアルは以下にあります。
mytop - display MySQL server performance info like `top'
インストールするにはSSHなどを使ってrootでログイン後、wgetでファイルをダウンロードする。
wget http://jeremy.zawodny.com/mysql/mytop/mytop-1.6.tar.gz
次にtarコマンドで解凍する
tar -zxvf mytop-1.6.tar.gz
解凍後、cdコマンドで解凍したディレクトリに移動する。
cd mytop-1.6
次に以下のコマンドを入力。
perl Makefile.PL
すると「Warning: prerequisite Term::ReadKey 2.1 not found.」というようにエラーが出るので、CPANから足りないものを取ってくるために以下のコマンドを入力する。
perl -MCPAN -e shell
CPANとは、プログラミング言語「Perl」で利用できるコマンドのことで、Perl用に開発されたモジュールを自動的にダウンロードしてサーバにインストールする事ができるコマンドのこと。初めてCPANコマンドを利用するときには、CPANの利用設定を行う必要がある。そのため、以下の行を表示して一旦停止する。
Are you ready for manual configuration? [yes]
ここでは「no」と入力してEnterキーを押すことで細かい設定をすべて飛ばしてもかまわないが、接続できないエラーが出る場合が多々あるのでこのあたりのページを参考にして、「CPAN mirror」を選択するところで「Asia」を選んでから「Japan」を選び、自分のサーバに一番近いミラーサーバを選ぶこと。なお、過去にCPANのインストール時に近くのミラーを選択するのをミスっている場合などは「cpan> o conf init」と入力して再設定を行うこと。
設定終了後、以下のような行を表示して停止する。
cpan>
なので、以下のコマンドを入力して先ほど足りないと言われた「Term::ReadKey」をインストールする。
install Term::ReadKey
しばらくするとインストールが完了するので、「exit」を入力してから、以下のコマンドを順番に入力してmytopのインストールを行う。
make
make test
make install
インストール成功後、実際にコマンドを実行するには以下のようにして入力する。
mytop -uユーザー名 -pパスワード -dデータベース名 -s表示更新秒数
例えばユーザー名「user」、パスワード「123456」、データベース名「db」で1秒ごとに更新させるなら以下のようになる。
mytop -uuser -p123456 -ddb -s1
なお、mytopの表示の見方は以下のページが非常にわかりやすい。
mytopの使い方 | Webシステム開発・構築 株式会社フラッツ Webサービス構築・ZenCart導入/カスタマイズ・サーバ構築 PHP/Ruby on Rails/Flash/Flex 東京都武蔵野市吉祥寺
なお、MySQL5ではmytop自体を書き換えて「SHOW STATUS」を「SHOW GLOBAL STATUS」にしないと正確に取得できない値が出てきます。あるいは同種のツールで「innotop」を使うという手もあります。そのあたりの事情は以下が詳しい。
(ひ)メモ - MySQL 5 の場合はmytopよりinnotopのほうがいいかも
innotopはMySQLとInnoDBのトランザクションやステータスをモニターすることができ、「mytop」をインスパイアして作ったと作者が明言しており、さすがに機能的にははるかに上。その代わり扱いが少々難しい。
こんな感じになります
公式サイトは以下。
Front Page at innotop
http://innotop.sourceforge.net/
ドキュメントは以下に。
http://innotop.sourceforge.net/documentation/
ダウンロードは以下から。
http://sourceforge.net/projects/innotop/
インストールは以下のような感じでいけます、簡単。
wget http://jaist.dl.sourceforge.net/sourceforge/innotop/innotop-1.4.3.tar.gz
tar zxvf innotop-1.4.3.tar.gz
cd innotop-1.4.3
perl Makefile.PL
make install
起動するには以下のように入力する。
innotop
あとはドキュメントを参考にして対話式で各種設定を行えば「$HOMEDIR/.innotop」というファイルが生成されます。ホームディレクトリに「.innotop」というファイルができるわけですね。設定に失敗した場合はこのファイルを消せば再設定が可能。
というわけで目的に応じて「mytop」か「innotop」を使い分けるのがよいのではないかと。
・関連記事
MySQLを自動バックアップする「AutoMySQLBackup」 - GIGAZINE
萌え萌えなMySQL互換オープンソースデータベース「MoSQL」 - GIGAZINE
MySQLを操作する「MySQL Quick Admin」がオープンソース化 - GIGAZINE
シンプルなPHPとMySQLの最適化方法「当たり前を積み重ねると特別になる」 - GIGAZINE
会員制ウェブサイトをPHPとMySQLでつくる - GIGAZINE
設定をMySQLやPostgreSQLに保存するDNSサーバ「MyDNS」 - GIGAZINE
MySQL Clusterを使った負荷分散のやり方 - GIGAZINE
Muninをカスタマイズして表示されるグラフの種類を増やしてみる - GIGAZINE
PHPとデータベースに関する5つの問題、とその解決法 - GIGAZINE
・関連コンテンツ