MySQLのパフォーマンスを分析するためのREDメソッド

記事の翻訳は、コース「DevOpsの実践とツール」の開始に先立って作成されました










RED(レート、エラー、期間)メソッドは、パフォーマンス監視の一般的なアプローチの1つです。マイクロサービスの監視によく使用されますが、MySQLなどのデータベースでの使用を妨げるものはありません。



Perconaは、監視と管理(PMM)v2では、すべての必要な情報がClickHouseデータベースに収集され、それが作成するための技術の問題であるダッシュボードメトリクスを可視化するためClickHouse組み込みのデータソースを使用しては



ダッシュボードを作成するときに、REDのパネルに加えて、いくつかの追加パネルが追加され、データソースとしてGrafana + ClickHouseを使用して実行できるいくつかの興味深いことと、MySQLクエリのパフォーマンスについて保存する情報が表示されます。



ダッシュボードを詳しく見てみましょう。







クエリレート(1秒あたりのリクエスト数)、エラーレート(エラー)、およびシステム内のすべてのノードの平均および99パーセントのクエリレイテンシ(クエリ実行時間)を示す従来のREDパネルが表示されます。以下のパネルには、特定のノードに関する情報が表示されます。これは、それらのパフォーマンスを比較するのに非常に役立ちます。ノードの1つが他の同様のノードとは異なる動作を開始した場合、これが調査の理由です。



フィルタ(ダッシュボードの上部にある「フィルタ」)を使用すると、必要なデータのみを表示できます。たとえば、「datacenter4」リージョンにあるホストに対しては、「sbtest」スキーマクエリのみを選択できます。







このアドホックフィルタリングは非常に便利です。フィルタで通常の式を使用したり、特定のQueryIDで検索したり、特定のクライアントホストからのクエリを分析したりできます。ClickHouseで使用できる列の説明については、「Percona Monitoring and Management with Direct ClickHouse Access」の投稿「高度なクエリ分析」を参照してください



ほとんどのパネルから、すぐにQuery Analyticsに移動してクエリのパフォーマンスに関する詳細情報を表示できます。または、ホストの1つで異常に気付いた場合は、「データリンク」からこのホストのクエリを表示できます。をクリックします。グラフを作成し、専用のリンクをたどってください。







システムごとに個別に、システム全体と同じREDメトリックを確認できます。デフォルトでは、特に多くのホストを監視している場合は、これらのパネルを最小化したままにします。



RED法のパネルに精通しました。次に、このダッシュボードの追加ダッシュボードを見てみましょう。







行ベースの効率は、返された、または変更された行ごとに分析された行の数を示します。通常、100を超える値は、大量のデータを読み取り、数行しか返さない、不正なインデックスまたは非常に複雑なクエリを示します。これらのケースは両方とも分析が必要です。



時間ベースの効率(時間ベースの効率)は同じ計算に基づいていますが、スキャンされた行数ではなく、クエリの実行時間を調べます。これにより、低速のディスクや競合する要求の問題を診断できます。通常、高性能システムでは、文字列をクライアントに送信または変更するのに1ミリ秒の何分の1かが必要です。多くの行を返すまたは更新するクエリの値は低くなります。



ホストごとのクエリ(ホストごとのリクエスト数)はそれ自体を表しており、その横にある[ホストごとのロード](ホストごとのロード)を確認すると非常に便利です。これは、同時にアクティブなリクエストの数を示します。ここでは、mysql4のクエリ数(クエリレート)が最大ではないにもかかわらず、負荷が最大で、アクティブなクエリの平均数が最大であることがわかります。



他にどのような指標が役立つかを考えて、次の追加パネルを追加しました。







これらのパネルは、クエリ処理効率をREADクエリ(行を返す)とWRITEクエリ(row_affected)に分けます。



QueryTimeベースの効率は上記と同じですが、特定のタイプのクエリに重点が置かれています。



データ処理効率(データ処理効率)は、同じデータの見方が少し異なります。これは、クエリによって検査される行数とクエリの実行時間の関係を示しています。これは、一方で、システムの処理能力を示しています。すべてのデータをメモリに保持する多数のコアを備えたシステムは、1秒あたり数百万行を処理し、多くの作業を実行できます。しかし、それはクエリの効率を意味するものではありません。実際、大量のデータを迅速に処理するシステムは、多くの場合、多くのフルテーブルスキャンを実行します。



最後に、リクエストのリストがいくつかあります。







頻繁なクエリ、最も遅いクエリ(平均実行時間による)、最も負荷の高いクエリ、および失敗または失敗したクエリ。これらのクエリはQueryAnalyticsでも確認できますが、ここでは例として示したいと思います。



興味ある?あなたには、ダッシュボードをインストールすることができます監視と管理Perconaから(PMM)v2のGrafana.com






コードからkubernetesへ







All Articles