Innotopを使用してMySQLの状態と変数を監視する方法

これは、innotop、MySQLおよびInnoDBモニターの使用方法に関する一連の記事の1つです。 この記事では、innotopがSHOW STATUSSHOW VARIABLESから有用な情報を一つの場所に集めるのをはるかに簡単にする方法を説明します。 Innotopにはさまざまな方法でこれを行う3つのモードがあるため、そのうちの1つがニーズを満たす可能性があります。

はじめに

SHOW STATUSSHOW VARIABLESの出力は、MySQLサーバーのトラブルシューティングを行い、MySQLサーバーがどれだけうまく動作しているか、どのようなワークロードがあるかなどを知るための最も便利なツールの一つです。 これらに精通していない場合は、この記事の残りの部分を読む前に、MySQLマニュアルでそれらを読むことをお勧めします。 私の例の背後にある情報を理解していれば、記事からさらに多くの情報を得ることができます。

これらの変数を取得する最も基本的な方法は、SHOWコマンドを発行することですが、結果を制約するためにLIKEを使用しても、結果は情報過多であるこ あなたがよく知っておく必要があるもう一つのことは、値が時間の経過とともにどのように変化するかです。 SHOWコマンドの結果をすばやく比較するのは難しいですが、サーバーで何が起こっているのかを理解するには、それを行う必要があります。

このための古典的なツールは、MySQLの独自のmysqladminです。 引数-iおよび-rを使用して実行して、値を頻繁に印刷し続けるように指示し、最後の値セットとの差を印刷することができます。 ステータス変数を監視するための基本的なコマンドは次のとおりです:

mysqladmin extended -i10 -r

それをgrepにパイプして、結果を少しフィルタリングすることもできます。

明らかに多くの改善の余地があります。 私はinnotopでこの情報をより簡単かつ柔軟に表示する三つの異なる方法を含めてきました、そして私はそれらを次に説明します。

方法1:Vモード

始める前に: まだインストールしていない場合は、innotopをダウンロードしてインストールし、これらの例を独自のサーバーで実行する必要があります。 あなた自身のサーバーがどのように実行されているかを見ることができると、もっと面白いです。 あなたはinnotopの最新かつ最高のバージョンにアップグレードしていない場合や、それはやって価値があります。 具体的には、バージョン0.1.139でのみ利用可能ないくつかの機能を示します。

さて、良いものに。 Innotopを起動し、”V”キーでVモードに切り替えます。 Vは”変数とステータス”の略です。「選択した各値の行と、表示する値の各セットの列を含むテーブルが表示されます。 値は、SHOW STATUSまたはSHOW VARIABLESで見つけることができる何かから選択することができます。

もう少し説明しましょう。 一番左の列には、表示するように選択した値が表示されます。 各行には1つの値があります。 あなたが右に行くように、あなたは値自体を参照してください。 最初に、最新の値が表示され、次にその前の値が表示され、右端の列まで表示されます。

この表示について注意すべきことがいくつかあります:

  1. 表示は増分です。 つまり、ここでは実際の値を表示していません。 私はスナップショットの違いを表示しています。 連続する各列でUptime値が60ずつ増分されていることがわかります。 私はスナップショットの間に60秒の睡眠時間を選択したからです。 (私は通常、最初の値としてUptimeを選択するので、どの時間範囲が表示されているかを見ることができます)。
  2. 右端の列は増分ではありません。 これは、innotopがメモリ内に持っている最も早いスナップショットなので、それから減算するものは何もないからです。 その上、あなたは常に値の違いを知りたいとは限りません。 時には、値自体を知りたい場合があります。 これにより、ベースラインが得られるため、増分値と絶対値の両方を同時に確認できます。
  3. 値テーブルの上にあるディスプレイの二行目には、現在の表示オプションが表示されます。 増分がオンになっており、毎秒平均がオフになっていることがわかります。 あなたは”i”と”a”キーでこれを切り替えることができますので、あなたは即座にデータ上のいくつかのビューの間で前後に切り替えることができます。
  4. 長い番号の表示がオンです。 あなたは、よりコンパクトな表示のための”l”キー(それは小文字の”L”です)でそれをオンとオフを切り替えることができます。

サーバーの8分の履歴を見るのはかなりコンパクトな方法ですが、同意しませんか? あなたは簡単に私が議論してきた他の方法よりも、このディスプレイからより多くの情報を得ることができます。 しかし、より多くのがあります!

  • 私はinnotopで表示する値のいくつかのプリセットの選択肢が含まれています。 あなたは、キー”0″から”9″でそれらの間を前後に切り替えることができます。 クエリキャッシュ、テーブルとインデックスのスキャン、InnoDB変数、トランザクションステートメントなどのプリセットがあります。 すべてのすべてで、値の十セットの余地があります。
  • “c”キーで各セットをカスタマイズできます。 私が言ったように、ステータスと変数の任意の値から選択して選択します。 これは設定ファイルに保存されるため、innotopを終了して再起動するとそこに表示されます。
  • 表示したいスナップショットの数を2から9まで選択できるので、一つの画面でどれだけの履歴を見たいかを決めることができます。

方法2:tload

の後にモデル化これらの変数を監視する別の方法は、tloadのスタイルでグラフを描画することです。 このモードの背後にある理論は、あなたが(いつものように”c”キーで)いくつかの値を選択し、innotopは今まで見た最大値に対して値の毎秒平均をスケーリングし、それ “G”キーでグラフモードに入ります。

これは、グラフが左から右ではなく上から下に実行されるため、tloadとはあまり似ていません。 これは、スケーリングされている”最大値”を含むヘッダーを定期的に出力します。

実際には、私はまだこの権利を得ていません。 私はそれを拡大縮小する方法がわかりません。 私は数学をやっても問題はありませんが、”今まで見た最大値”に対してスケーリングすると良い結果が得られないようです。 時々それは素晴らしいグラフで起因する;他の時ない。 私は実際のサーバー負荷を計算する良い方法がなければならないと考え続けているので、有意義にグラフ化することができますが、私はそれを考えるこ 何か提案は?

私はこのモードにはあまり満足していません。 より便利にする方法がわからない場合は、ほんの数行のコードであっても、この機能を取り除くことができます。

メソッド3: vmstat

の後にモデル化された私の同僚のJohnは、グラフがそれほど有用ではないと予想し、グラフを描く代わりにvmstatiostatを模倣できるかどうか尋ねました。 結果は”S”モードです。 グラフの代わりに値を出力する点を除いて、”G”モードと同じ情報を出力できます。

これは”G”モードよりも便利だと思いますが、上記で示した”V”モードとはやや冗長です。 値は画面全体に配置され、時間は画面の下から上に流れるため、画面に収まる値は少なくなりますが、時間ウィンドウを長く表示することができます。

モードの要約

私はちょうどあなたにinnotopがMySQLサーバーからのステータスと変数情報を監視するために持っている三つのモードを示しました:

  1. “V”モードは、さまざまなオプションの多くで、スナップショットのテーブルを印刷します。
  2. “G”モードはグラフを印刷しようとしますが、必ずしも良い仕事をするとは限りません。
  3. “S”モードは”V”モードに似たものを出力しますが、データのレイアウトは異なります。

三つのモードは基本的に同じ値を見る方法が異なります。 それらの中にはいくつかの冗長性がありますが、それぞれを行うためにコードがほとんど必要ないため、コーディングの観点から冗長性は気にしません。 それはモニターを使用するためのより多くの方法を与える場合、私は、同様の機能を持つ三つの機能を維持して気にしません。

あなたが改善のための提案があれば、私はあなたから聞くのを待っています 🙂

Summary

この記事では、SHOW STATUSSHOW VARIABLESの出力を監視する昔ながらの方法を説明し、innotopがこれをはるかに高速かつ簡単にする方法を示しました。

innotopについての詳細を学ぶためにお楽しみにして、伝えるためにもっとたくさんあります! あなたは、現在の状態を維持するために、フィードや電子メールを介して購読することができます。

コメントを残す

メールアドレスが公開されることはありません。