指標に関していつもググってばっかりいたので、まとめてみました。
ツッコミ大歓迎。
CPU usage
name | detail |
---|---|
User | ユーザ空間(アプリケーション)でCPUが使われた時間の割合 |
Nice | 優先度を変更された(nice値が変更された)プロセスにより、ユーザ空間でCPUが使われた時間の割合 |
System | カーネル空間でCPUが使われた時間の割合 |
Idle | CPUが何も処理をせずに待機していたCPUの時間の割合(ディスクI/O待ち以外) |
Wait(iowait) | CPUがディスクI/O、またはネットワークI/Oの結果を待っていた時間の割合(I/O処理中で、その終了を待機している時間) |
Intr | 割り込み |
SoftIRQ | ソフト割り込み |
Steal | 仮想サーバがCPUを使って待たされていた時間の割合 |
http://blog.suusuke.info/2011/10/24/365/
hiboma/Linuxカーネル解読室-3-1.md at master · hiboma/hiboma · GitHub
O'Reilly Japan - 詳解 システム・パフォーマンス
の 6.3.6
6.6.3
も合わせて参照
Memory Usage
name | detail |
---|---|
used | 使用している物理メモリ量 |
buffer | ファイルなどのメタデータをキャッシュしている物理メモリ量 |
cached | ページキャッシュに使用されているメモリ量 |
avail real | 利用可能な物理メモリの量 |
total real | 総物理メモリの量 |
used swap | Swap領域で使用している量 |
cached も buffers も空きメモリの一部 状況に応じてflushされる
Nginx
name | detail |
---|---|
Reading | nginxはリクエストヘッダーを読み込んでいる数 |
Writing | nginxはリクエストボディーを読み込んでいる、リクエストを処理中、またはクライアントへ返信している数。upstreamから結果を受け取ってクライアントに返し中なのか、upstreamからの回答待ちであるかが区別されてないっぽいのが困る。 |
Waiting | リクエスト処理を待っているクライアントのコネクション数 (idle client connections waiting for a request.) keep-aliveの接続数 |
http://wiki.nginx.org/HttpStubStatusModule#stub_status
MySQL
変数の参照はここ
MySQL :: MySQL 5.6 リファレンスマニュアル :: 5.1.6 サーバーステータス変数
MySQL Threads
name | detail |
---|---|
Cached | キャッシュされているスレッド数(スレッドは使いまわされる) |
Connected | 現在の接続数 |
Running | スリープ状態になっていないスレッドの数 |
Threads_created 接続を処理するために生成されたスレッド数(この値が増えまくるなら、cached が足りていない)
Threads_cached + Threads_connected が thread_cache_sizeの値より小さければ想定内。
MySQLのスレッドとか接続数とか - @bayashi Wiki
MySQL Processlist
name | detail |
---|---|
State Closing Tables | 変更されたテーブルデータをディスクにフラッシュし、使用されたテーブルを閉じているスレッド数 |
State Copying To Tmp Tables | メモリー内の一時テーブルにコピーしているスレッド数 |
State End | ALTER TABLE、CREATE VIEW、DELETE、INSERT、SELECT、または UPDATE ステートメントの最後、ただしクリーンアップの前に発生しまる状態のスレッド数 |
State Freeing Items | コマンドの実行を完了したスレッド数、通常、この状態のあとは cleaning up になります |
State Init | ALTER TABLE、DELETE、INSERT、SELECT、または UPDATE ステートメントの初期化の前に発生する状態のスレッド数 |
State Locked | 別のクエリーによってロックされているスレッド数 |
State Login | クライアントが正常に認証されるまでの初期状態のスレッド数 |
State Reading From Net | ネットワークからパケットを読み込んでるスレッド数 |
State Sending Data | SELECT ステートメントのために行を作成し、また、クライアントにデータを送っているスレッド数 |
State Sorting Result | |
State Statistics | クエリー実行計画を開発する統計を計算しているスレッド数 |
State Updating | 更新する行を探していて、それらを更新しているスレッド数 |
State Writing To Net | ネットワークにパケットを書き込んでいるスレッド数 |
State None | Stateのないスレッド数 例えば SLEEP中のスレッド |
State Other |
http://mysql.stu.edu.tw/doc/refman/5.1-olh/ja/general-thread-states.html
MyISM Indexes
name | detail |
---|---|
Key Read Requests | |
Key Reads | |
Key Writes Requests | |
Key Writes |
MySQL Handlers
クエリの I/O 動作
name | detail |
---|---|
Handler Write | INSERTの回数 |
Handler Update | UPDATEの回数 |
Handler Delete | DELETEの回数 |
Handler Read First | テーブルやインデックスの全件検索(インデックスフルスキャン)の際にまず最初に先頭レコードの取得するが、その回数。フルスキャンが多いとこの回数が増える。(要チューニング) |
Handler Read Key | インデックスに基づく読み込み回数。これが多い場合は適切にインデックスが貼られている。 |
Handler Read Next | インデックスに基づいて行を特定した後、後続の行を読んだ回数。範囲指定のインデックススキャンの場合に増えます。 |
Handler Read Prev | インデックスに基づいて行を特定した後、その前の行を読んだ回数。範囲指定のインデックススキャンの場合に増えます。 |
Handler Read Rnd | 固定位置に基づくレコード読んだの回数(handler::rnd_pos()が呼ばれた回数)。固定位置に基づくレコードの読み込みとは、Random Readのこと。結果のソートを必要とするクエリを多く実行すると、この値が大きくなる。(要チューニング) |
Handler Read Rnd Next | データファイルでの次のレコードを読み取った回数。 テーブルスキャンが多く実行されると、この値が大きくなる。(要チューニング) |
MySQL Select Types
name | detail |
---|---|
Select Full Join | インデックスのないカラムで JOINした回数 |
Select Full Range Join | 範囲指定の効果はあるがインデックスは使わず JOINした回数 |
Select Range | WHERE などの指定によって範囲が限定された探索を行った回数 |
Select Range Check | インデクッスなしのJOIN数 |
Select Scan | テーブル(またはインデックスでも)の先頭行から全件検索(スキャン)をした回数 |
JOINに関してはEXPLAINしてtypeがeq_refになるようにする。
MySQL Sorts
name | detail |
---|---|
Sort Rows | ソートしたレコード数 |
Sort Range | 範囲検索ソートの回数 |
Sort Merge Passes | ソートで必要としたマージパスの回数 |
Sort Scan | テーブルスキャンでソートした回数 |
MySQL Temporary Objects
name | detail |
---|---|
Created Tmp Tables | 作成した一時テーブルの数 |
Created Tmp Disk Tables | ディスク上に作成した一時テーブルの数 |
Created Tmp Files | 作成した一時ファイルの数 |
sort_buffer_sizeを超える大きなORDER BYなどで作成される。
漢(オトコ)のコンピュータ道: Using filesort
MySQL Transaction Handle
name | detail |
---|---|
Handler Commit | コミットの要求数 |
Handler Rollback | ロールバックの要求数 |
Handler Savepoint | セーブポイントの要求数 |
Handler Savepoint Rollback | セーブポイントロールバックの要求数 |
Cache hit rate
name | detail |
---|---|
key cache | |
query cache | |
table lock immediate | |
thread cache | |
tmp table on memory |
Dirty page rate
buffer pool の page のうち disk に flush されてない page の比率
ここが増加していると、diskへの書込みが追いついていない
https://dev.mysql.com/doc/refman/5.6/ja/glossary.html#glos_dirty_page
Buffer Pool Activity
name | detail |
---|---|
Page Created | 作成されたページの数 |
Page Read | 読み込まれたページの数 |
Page Written | 書き込まれたページの数 |
Checkpoint Age
Current Lock Wait
トランザクションのロック開放待ち時間の合計秒数
InnoDB I/O
InnoDB I/O Pending
Lock Structures
開放まちLock structの数
InnoDB Log
name | detail |
---|---|
Innodb Log Buffer Size | ログバッファのサイズ |
Log Byte Written | ログに書き込まれたデータ量 |
Log Byte Flushed | ロクから書き出されたデータ量 |
Unflushed Log | ログから書き出されていないデータ量 |
Row Lock Time
行ロック獲得のための所用総時間(msec)
Row Lock Waits
行ロック獲得待機回数
InnoDB Tables In Use
name | detail |
---|---|
InnnoDB Tables In Use | 実行中のトランザクションが利用しているテーブル数の合計数 |
InnnoDB Locked Tables | 実行中のトランザクションがロックしているテーブル数の合計数 |
InnoDB Transactions
name | detail |
---|---|
InnnoDB Transactions | 生成されたトランザクション数 |
History List | undo領域にある未破棄のトランザクション数 |
参照
mpstat
CPUごとの使用状況
-P ALL
ですべてのコアの情報を表示する