MySQLサーバー監視、診断に利用できる外部ツールに関する情報をまとめました。
※目次をクリックすると目次の下部にコンテンツが表示されます。
perconaツールキット
1)perconaツールキットをインストール(CentOS6.5)
①rpmファイルをダウンロード
# wget percona.com/get/percona-toolkit.rpm
②RPMのファイル名を確認
# ls | grep percona
percona-toolkit.rpm
③RPMのファイル名を指定してyumコマンドでインストール
①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スタックトレースを収集する。
※その他
http_load
http_loadを使って手軽にパフォーマンス測定を実行できます。
1)http_loadの概要
アクセスするURLのリストを作成し、そのURLを使ってWebサーバーにアクセスし、応答時間やスループットなどを測定する。
2)インストール(CentOS6.5)
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
その他のツール
1)oprofile
・OProfile は維持負担の少ないシステム全体のパフォーマンス監視ツール
・プロセッサ上にあるパフォーマンス監視ハードウェアを使用して、メモリーの参照時期、L2 キャッシュ要求の回数、及び受け取ったハードウェア割り込みの回数など、システム上のカーネルと実行可能ファイルに関する情報を取り込む。
2)strace
実行中のプロセスに関するシステムコールを監視、表示
3)tcpdump
mk-query-digestと組み合わせてMySQLのクエリを解析する事が出来る。
・OProfile は維持負担の少ないシステム全体のパフォーマンス監視ツール
・プロセッサ上にあるパフォーマンス監視ハードウェアを使用して、メモリーの参照時期、L2 キャッシュ要求の回数、及び受け取ったハードウェア割り込みの回数など、システム上のカーネルと実行可能ファイルに関する情報を取り込む。
2)strace
実行中のプロセスに関するシステムコールを監視、表示
3)tcpdump
mk-query-digestと組み合わせてMySQLのクエリを解析する事が出来る。
-
インストール、基本設定、文字コード、仕組み
- MySQLのインストール
- CentOS6でMySQL5.1からMySQL5.7へアップデートする手順、注意点
- CentOS6.10でMySQL5.7からMySQL8へアップデートする手順、注意点
- MySQLサーバーの起動スクリプト(v5.1)
- MySQLのファイルシステムとストレージエンジンの概要
- MySQLのデータ型の概要
- MySQLのサーバー、データベース、テーブル、カラムの文字コード設定とクライアントからのサーバー接続時の文字コード設定
- MySQLの”LOAD DATA INFILE”などでCSVファイル入出力時の文字コード、権限などの注意点
- セキュリティを考慮し、MySQLの匿名ユーザーにパスワードを設定、または削除
- CentOS6にphpMyAdminを導入
- MySQLのbツリーインデックスの概要とマルチカラムインデックス
- MySQLのプレフィックスインデックス、FULLTEXTインデックスの概要
- MySQLのEXPLAINの実行例
- MySQLのインデックス結合の概要
- MySQLのSelect文でインデックスのカラムのみ取得する場合のメリット
- MySQLのORDER BY句でインデックスを使用
- MySQLのPACK_KEYSオプション
- MySQLのインデックス統計更新の概要
- MySQL初期設定確認
- mysqladminコマンドでMySQLサーバーの状態確認
- mysqlshowコマンドで簡単にデータベース、テーブル定義の確認
- awkを使ってmysqlshowの必要な列のみ表示
- MySQLのスロークエリログの概要と表示方法
- show profileでクエリーの内部処理時間を調査
- MySQL Benchmark Suiteによるパフォーマンス測定
- MySQLの診断、監視に利用できる外部ツール
- WordPressデータベースのバックアップとリストア
- Bashスクリプトでmysqldumpバックアップと世代管理
- MySQLの壊れたテーブルのチェック、修復方法
- MySQLのインデックス統計更新の概要
- MySQLのフラグメンテーションの概要と改善方法
- MySQLのスレッド、コネクションに関する設定値、チューニング
- MySQLのセッション単位に設定するバッファーサイズ
- MySQLのクエリキャッシュの設定値、パフォーマンス
- MySQLのテーブルオープン、クローズとテーブルキャッシュのチューニング
- MyISAMキーキャッシュの概要とチューニング
- MySQLのソートに関する設定値とステータス
- MySQL innoDBの性能関連の設定値とステータス確認
- MySQL MyISAMの性能関連の設定値とステータス確認
インデックス
状態確認、調査
バックアップ、リストア、メンテナンス
パフォーマンス、チューニング