【mysql】mytop・innotop

mytop

show statusとshow full processlistを発行し、取得した情報から統計情報などを算出して表示するPerlスクリプト

root@hostname:/home/admin# aptitude install mytop
以下の新規パッケージがインストールされます:
  libconfig-inifiles-perl{a} liblist-moreutils-perl{a} libterm-readkey-perl{a} mytop 
更新: 0 個、新規インストール: 4 個、削除: 0 個、保留: 0 個。

root@hostname:/home/admin# mytop -s 1 -uroot -ppassword # 1秒おきに更新する(デフォルト5秒)
MySQL on localhost (5.5.39-MariaDB-1~wheezy-log)        up 6+02:13:17 [16:35:46]
 Queries: 77.0    qps:    0 Slow:     0.0         Se/In/Up/De(%):    50366/00/00/00
              qps now:    0 Slow qps: 0.0  Threads:    2 (   1/   2) 250/00/00/00
 Key Efficiency: 100.0%  Bps in/out:   0.0/  0.9   Now in/out:   8.3/ 2.3k

        Id      User         Host/IP         DB      Time    Cmd Query or State                                                                      
        --      ----         -------         --      ----    --- --------------                                                                      
      4703      root       localhost                    0  Query show full processlist                                                               
      4705      root       localhost techwordpr         7  Sleep                                                                  
      
# [?]:可能なコマンドを表示する
# [k]:スレッドを指定して、KILLする
# [p]:画面を一時停止する
# [k]:mytopを終了する

innotop

innotopはMySQLとInnoDBのトランザクションやステータスをモニターすることができ、「mytopをインスパイアして作った」と作者が明言しており、機能はmytop以上
mariadb-client-5.5・mysql-client-5.5にインストールされているため、大抵デフォルトで利用できる
また、対話式で各種設定を行えば「$HOMEDIR/.innotop」というファイルが生成され、この機能を利用して複数サーバを確認することなども可能

### innotop -u DBユーザ -p パスワード -P 3306 -h DBサーバ名 -d 1 --mode Q
### コマンドオプションの -d は表示切替間隔(秒) 、--mode は 何を表示するかの指定
root@hostname:/home/admin# innotop -uroot -ppassword --mode B -d 1
[RO] InnoDB Buffers (? for help)                 localhost, 33+03:16:39, InnoDB 7s :-), 0.19 QPS, 1/0/0 con/run/cac thds, 5.5.39-MariaDB-1~wheezy-log

___________________________ Buffer Pool ____________________________
Size    Free Bufs  Pages  Dirty Pages  Hit Rate  Memory   Add'l Pool
16.00k      13265   3096            0  --        262.75M           0

____________________ Page Statistics _____________________
Reads  Writes  Created  Reads/Sec  Writes/Sec  Creates/Sec
 1016  149686     2080       0.00        0.00         0.00

______________________ Insert Buffers ______________________
Inserts  Merged Recs  Merges  Size  Free List Len  Seg. Size
                                                            

_________________ Adaptive Hash Index __________________
Size  Cells Used  Node Heap Bufs  Hash/Sec  Non-Hash/Sec
                                      0.00          0.00
### [?]でヘルプが表示される
[RO] InnoDB Buffers (? for help)                 localhost, 33+03:15:42, InnoDB 4s :-), 0.19 QPS, 1/0/0 con/run/cac thds, 5.5.39-MariaDB-1~wheezy-log

Switch to a different mode:
   B  InnoDB Buffers    I  InnoDB I/O Info     Q  Query List
   C  Command Summary   L  Locks               R  InnoDB Row Ops
   D  InnoDB Deadlocks  M  Replication Status  S  Variables & Status
   F  InnoDB FK Err     O  Open Tables         T  InnoDB Txns
### Q / B / M / D / I あたりは使う頻度高め

Actions:
   d  Change refresh interval            p  Pause innotop
   i  Toggle incremental status display  q  Quit innotop
   n  Switch to the next connection      

Other:
 TAB  Switch to the next server group   /  Quickly filter what you see
   !  Show license and warranty         =  Toggle aggregation
   #  Select/create server groups       @  Select/create server connections
   $  Edit configuration settings       \  Clear quick-filters
Press any key to continue

### 0.5秒間隔で120回、つまり1分間サンプリングを取得する ###
### 更新間隔秒数は指定できるが、どれだけ小さくしても漏れるクエリがあるためあまり信用してはならない ###
root@hostname:/home/admin# innotop -w -uroot -ppassword -d 0.5 --count 100 -n | tee /tmp/innodb.log
cmd     mysql_thread_id state   user    hostname        db      time    info
Connect 26272   Reading from net        unauthenticated user    localhost               00:00
Connect 26273   Reading from net        unauthenticated user    localhost               00:00
Connect 26274   Reading from net        unauthenticated user    localhost               00:00

参考URL

mytopの使い方
http://www.flatz.jp/archives/85
http://koexuka.blogspot.jp/2011/02/mytop.html
innotopの使い方
http://yakst.com/ja/posts/78
http://d.hatena.ne.jp/interdb/20100412/1271068031