MySQLの診断、監視に利用できる外部ツール

MySQLサーバー監視、診断に利用できる外部ツールに関する情報をまとめました。

(1)perconaツールキット


 
1)perconaツールキットをインストール(CentOS6.5)
 
①rpmファイルをダウンロード
 
# wget percona.com/get/percona-toolkit.rpm
 
②RPMのファイル名を確認
 
# ls | grep percona
percona-toolkit.rpm
 
③RPMのファイル名を指定してyumコマンドでインストール

# yum install percona-toolkit.rpm
  :
Installed:
  percona-toolkit.noarch 0:2.2.13-1

Dependency Installed:
  perl-IO-Socket-SSL.noarch 0:1.31-2.el6
  perl-Net-LibIDN.x86_64 0:0.12-3.el6
  perl-Net-SSLeay.x86_64 0:1.35-9.el6
  perl-Time-HiRes.x86_64 4:1.9721-136.el6_6.1

Complete!

 
2)perconaツールキットの主なツール
 
①pt-stalk
 
・障害が発生した際にMySQLに関するフォレンジックデータを集める事が出来る。
 
・監視対象、閾値、監視間隔などを簡単に設定できる。
 
②pt-pmp
 
指定したプログラムのGDBスタックトレースを収集する。
 
その他
 

(2)http_load


 
http_loadを使って手軽にパフォーマンス測定を実行できます。
 
1)http_loadの概要
 
アクセスするURLのリストを作成し、そのURLを使ってWebサーバーにアクセスし、応答時間やスループットなどを測定する。
 
2)インストール(CentOS6.5)

# wget http://www.acme.com/software/http_load/http_load-14aug2014.tar.gz

# tar xvfz http_load-14aug2014.tar.gz
# cd http_load-14aug2014

# make

# make install
rm -f /usr/local/bin/http_load
cp http_load /usr/local/bin
rm -f /usr/local/man/man1/http_load.1
cp http_load.1 /usr/local/man/man1
cp: cannot create regular file `/usr/local/man/man1': そのようなファイルやディレクトリはありません
make: *** [install] エラー 1

# mkdir -p /usr/local/man/man1

# make install
rm -f /usr/local/bin/http_load
cp http_load /usr/local/bin
rm -f /usr/local/man/man1/http_load.1
cp http_load.1 /usr/local/man/man1

3)パフォーマンス測定の実行例
 
①アクセスするURLのリストファイルを作成
 
1行に1URLずつ記載。とりあえず、自分が運用してるVPNサーバーの5つのURLを記述してみました。
 
②並列接続数を指定して測定
 
測定時間と並列接続数をパラメータとして指定して実行します。その条件化でループ処理で接続し、最大処理数を測定します。
 
●並列接続数1
 
# http_load -parallel 1 -seconds 10 urllist.txt
 
47 fetches, 1 max parallel, 934904 bytes, in 10 seconds
19891.6 mean bytes/connection
4.7 fetches/sec, 93490.4 bytes/sec
msecs/connect: 11.2438 mean, 36.791 max, 10.235 min
msecs/first-response: 170.032 mean, 187.356 max, 159.959 min
20 bad byte counts
HTTP response codes:
code 200 — 47
 
●並列接続数5
 
下記の通り、並列数を5倍にしましたが、接続数は3倍にとどまっています。
 
# http_load -parallel 5 -seconds 10 urllist.txt
 
150 fetches, 5 max parallel, 3.20095e+06 bytes, in 10 seconds
21339.6 mean bytes/connection
15 fetches/sec, 320095 bytes/sec
msecs/connect: 10.9216 mean, 14.944 max, 9.989 min
msecs/first-response: 265.288 mean, 347.775 max, 165.933 min
60 bad byte counts
HTTP response codes:
code 200 — 150
 
③並列接続数は指定せず、レートを指定して測定
 
●レートを毎秒5にして実行
 
# http_load -rate 5 -seconds 10 urllist.txt
 
48 fetches, 2 max parallel, 1.01165e+06 bytes, in 10.0001 seconds
21076.1 mean bytes/connection
4.79995 fetches/sec, 101164 bytes/sec
msecs/connect: 10.1015 mean, 11.396 max, 9.64 min
msecs/first-response: 167.227 mean, 208.033 max, 158.009 min
23 bad byte counts
HTTP response codes:
code 200 — 48
 
●レートを毎秒20にして実行
 
下記の通り、レートを20に指定しましたが、9までしか実行できませんでした。
 
# http_load -rate 20 -seconds 10 urllist.txt
 
89 fetches, 111 max parallel, 1.85879e+06 bytes, in 10.0001 seconds
20885.3 mean bytes/connection
8.89995 fetches/sec, 185878 bytes/sec
msecs/connect: 10.2155 mean, 12.786 max, 9.706 min
msecs/first-response: 1528.97 mean, 3347.55 max, 165.777 min
45 bad byte counts
HTTP response codes:
code 200 — 89
 
(3)その他のツール
 
1)oprofile
 
・OProfile は維持負担の少ないシステム全体のパフォーマンス監視ツール
 
・プロセッサ上にあるパフォーマンス監視ハードウェアを使用して、メモリーの参照時期、L2 キャッシュ要求の回数、及び受け取ったハードウェア割り込みの回数など、システム上のカーネルと実行可能ファイルに関する情報を取り込む。
 
2)strace
 
実行中のプロセスに関するシステムコールを監視、表示
 
3)tcpdump
 
mk-query-digestと組み合わせてMySQLのクエリを解析する事が出来る。

関連記事の目次

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です