sql >> データベース >  >> RDS >> MariaDB

ハイブリッドクラウドでのMariaDBパフォーマンスの監視

    MariaDBデータベースのパフォーマンスは、本番環境とそのタイムリーな実行状態で綿密に監視および監視したい領域の1つです。アーキテクチャのセットアップでハイブリッドクラウドを使用する場合、時間、作業、および費用が非常に高くなる可能性があります。それだけでなく、特に、パブリッククラウド(GCP、AWS、Azureなど)と通信するオンプレミスまたはプライベートクラウドのいずれかとして接続を提供するネットワーク仲介者、およびその逆の特定の領域があります。 。

    このブログは、ハイブリッドクラウドインフラストラクチャでのMariaDBデータベースのパフォーマンスの監視に関するものです。ハイブリッドクラウドセットアップ内でMariaDBデータベースのパフォーマンスを監視する際の基本と最も重要な主要な指標を提供します。

    パフォーマンスモニタリングが必要な理由

    ハイブリッドクラウドでは、利用可能な各サービスの監視が複雑になる可能性があります。独自のデータセンターやプライベートクラウドとは異なり、ハードウェアとソフトウェアのインフラストラクチャを完全に制御できます。パブリッククラウドでは、提供するサービスに制限があり、メトリックとログを提供する別のサービスが必要な場合は、追加のコストが発生する可能性があります。収集される機密データに関しても、セキュリティが懸念されます。

    パフォーマンスモニタリングは、データベースがクラウド、オンプレミス、プライベート、またはパブリッククラウドで実行されている効率と速度を判断するのに役立ちます。実際には、リアルタイムまたは定期的なメトリックを提供する、テスト済みの結果ベースのプロセスとツールのセット。

    ハイブリッドクラウド内では、監視および監視する必要のある主要なメトリックを管理するために、すべてのソフトウェア監視ツールが構築されているわけではありません。ツールが提供できる必要なメトリックと要件を決定するためのアイデアと知識が必要です。ハイブリッドクラウドでは、ハイブリッドクラウドの動作の性質が複雑になる可能性があります。これらのサービスは高度に分散されており、1つのプロバイダーだけに限定されない他のサービスと混合されています。

    その点で、監視ソフトウェアにはこれらの特殊性があり、それが属するクラウドを識別して切り離す機能もあります。監視ソフトウェアまたはツールには、ボトルネック、セキュリティの問題、遅延に対処し、スケーラビリティを提供し、進行中の問題を通知し、予測を提供する機能が必要です。予測により、MariaDBデータベースの災害や効率への影響につながる可能性のあるさらなる結果を回避できます。これにより、インフラストラクチャエンジニア、データベースエンジニア、サーバー管理者、開発者を含むチーム全体が、データベースサーバーが正常であり、期待どおりに稼働していることを確認できます。

    データベース監視で考慮すべき事項

    MariaDBデータベースクラスター(レプリケーションまたはGalera)またはノードを監視する場合、考慮すべき2つの主要な事項があります。オペレーティングシステムとデータベース自体です。両側から監視するメトリックと、それを実行する方法を定義する必要があります。システムのコンテキストで常にメトリックを監視する必要があり、動作パターンの変更を探す必要があります。

    ほとんどの場合、いくつかのツールを使用する必要があります(必要なすべての指標をカバーするツールを見つけることはほぼ不可能であるため)。

    メトリックの1つが影響を受けると、他のメトリックにも影響を与える可能性があり、問題のトラブルシューティングがより複雑になることに注意してください。このタスクをできるだけ簡単にするためには、優れた監視およびアラートシステムを用意することが重要です。

    サーバーアクティビティ(ネットワーク、ディスク、ロード、メモリ、CPU)を常に監視する

    データベースアーキテクチャに非常に複雑なスタックが絡み合っている場合、サーバーアクティビティの監視も複雑な作業になる可能性があります。ただし、MariaDBデータベースの場合、ノードごとに完全なイントロスペクションを取得するには、ノードを常に専用サーバーとして設定するのが常に最善です。すべての予備のリソースを使用することを制限するものではありませんが、以下は、調査する必要のある一般的な重要な領域です。

    ネットワーク

    ハイブリッドクラウドインフラストラクチャでは、設計の種類と、オンプレミスまたはプライベートクラウドからパブリッククラウドへの通信方法を考慮する必要があるため、調査することが最も重要な懸念事項の1つです。およびその逆。いずれにせよ、クラスターまたはノードの1つに、書き込みを受信するためのプライマリとしての役割、またはディザスタリカバリとしての役割に特化したものがあります。その点で、リカバリノードにレイテンシを持たせたくありません。さらに悪いことに、レプリケーションラグが大きくなります。ラグが発生し、特定のクラウド(オンプレミスなど)のプライマリクラスターがダウンした場合は常に、パブリッククラウドが引き継ぐ必要がありますが、最新のデータを提供できる必要があります。これが発生する可能性がある場合は常に、リカバリクラスター(この場合はパブリッククラウドクラスター)で一部のトランザクションまたは書き込みがまだ適用されていない場合に、増分バックアップまたはPITRを処理するフェールオーバー前メカニズムを追加する必要があります。

    Galeraを使用している場合、MariaDBがGaleraをバージョン4にアップグレードしたため、ストリーミングレプリケーションが主要な機能の1つとして追加され、以前のバージョンから変更されました。ストリーミングレプリケーションは以前のリリースでの欠点に対処しますが、Galera Cluster 4以降の2GBを超える書き込みセットを管理できるため、大きなトランザクションを断片化できるため、セッションレベルでのみこれを有効にすることを強くお勧めします。つまり、ネットワークアクティビティを監視することは、MariaDBクラスターの通常のアクティビティにとって非常に重要で重要です。これは、期間に基づいて、どのノードが最大または最大のネットワークトラフィックを持っていたかを特定するのに役立ちます。

    ネットワーク監視をレンダリングする良い例は、ClusterControlを使用することです。各ノードを識別し、ノードが配置されているクラウドに関係なく、ノードごとのネットワークアクティビティの概要を提供します。以下のスクリーンショットを参照してください:

    CPU、メモリ、およびロードアクティビティ

    監視する際に注意すべき、これら3つの領域について簡単に説明します。このセクションでは、次の領域を一度に観察しやすくすることが常に最善です。すばやく簡単に理解でき、パフォーマンスのボトルネックを排除したり、ノードが停止したり他のノードに影響を及ぼしたり、クラスターがダウンする可能性さえあるバグを特定したりするのに役立ちます。

    では、監視時のCPU、メモリ、および負荷のアクティビティは、MariaDBにどのように役立ちますか?さて、私が上で述べたように、それらは毎日の定期的なチェックのための数少ないものの1つですが大きな要因です。さて、これは、これらが定期的またはランダムに発生するかどうかを識別するのにも役立ちます。定期的な場合は、MariaDBデータベースノードの1つで実行されているバックアップに関連している可能性があります。または、最適化が必要な大規模なクエリです。たとえば、適切なインデックスがない不正なクエリや、このような大きな文字列の文字列比較を行うなど、データ取得の使用のバランスが崩れています。これは、特にアプリケーションの性質と要件である場合は、OLTPタイプのデータベースには間違いなく適用できない可能性があります。大きな文字列データの取得や文字列の照合には、MariaDB Columnstoreなどの他の分析ツール、または他のサードパーティの分析処理ツール(Apache Spark、Kafka、MongoDBなど)を使用することをお勧めします。

    これらすべての重要な領域が監視されているので、問題は、それをどのように監視するかということです。少なくとも1分ごとに監視する必要があります。洗練された監視を使用すると、つまり、1秒あたりの集合的なメトリックはリソースを大量に消費し、リソースに関して非常に貪欲になる可能性があります。特にデータとRPO(目標復旧時点)が非常に低い場合は、30分の収集が許容されますが、より詳細でリアルタイムのデータメトリックが必要です。データベースクラスターの全体像を監視できることが非常に重要です。これとは別に、監視しているメトリックがいつでも、物事が危険にさらされているとき、または単なる警告でさえも注意を引くための適切なツールを持っていることも最善かつ重要です。 ClusterControlなどの適切なツールを使用すると、監視対象のこれらの重要な領域を管理するのに役立ちます。 ClusterControlの無料バージョンまたはコミュニティエディションを使用しています。これにより、インストールからノードの監視まで、数回クリックするだけでノードを監視できます。たとえば、以下のスクリーンショットを参照してください。

    また、ノードごとに簡単なグラフの概要を提供します

    または、Prometheusを使用したクエリ言語もサポートする、より強力で豊富なデータモデルを使用すると、履歴データに基づいて、タイムリーにパフォーマンスを比較するMariaDBデータベースのパフォーマンスを分析できます。たとえば、

    これにより、より目に見える指標が提供されます。したがって、ハイブリッドクラウドでMariaDBデータベースを監視する場合、適切なツールを使用することが非常に重要であることがわかります。

    MariaDB統計変数の集合的モニタリング

    時折、MariaDBデータベースのバージョンが、より多くのステータス変数を提供し、監視する値を調整することで、データベースの監視の性質を監視または強化するための新しい統計を生成することは避けられません。

    > 送信/受信したバイト数

    送信または受信されたバイトは、ネットワーキングアクティビティと相関関係があり、特にハイブリッドクラウドトポロジで並べて表示する重要な領域の1つです。これにより、MariaDBデータベース内で発生しているパフォーマンスの問題に最も影響を与えているノードまたは原因となっているノードを特定できます。ダーティページの同期に時間がかかりすぎる可能性のあるネットワークデバイスや基盤となるストレージデバイスなどのハードウェアに劣化がないかどうかを確認できるため、非常に重要です。

    スクリーンショットの例をご覧ください

    クラスターの読み込み

    これは、サーバーの稼働時間以降にこれまでに照会または実行された変更またはデータ取得の量に関するデータベースアクティビティの詳細です。これは、データベースクラスターのパフォーマンスに主に影響を与えているクエリの種類を除外するのに役立ちます。これにより、特にデータベース要求の負荷のバランスをとる上で改善の余地を提供できます。

    そのため、MariaDBデータベースサーバーで確認する変数はたくさんあります。ここで考慮しなければならない最も重要なことは、データベースクラスターの監視に使用しているツールです。 ClusterControl(Community Edition)を使用すると、MariaDBデータベースで調べる柔軟性を備えたより多くの方法が提供されます。以下の例を参照してください

    次に、ドロップダウンメニューから他の変数を選択して調べることもできます

    これは非常に便利で、たとえばハイブリッドクラウドのレプリケーショントポロジで判断するのに役立ちます。ネットワークに関連する状態とパフォーマンスの概要を簡単に把握できますが、ハイブリッドクラウドトポロジでMariaDBのパフォーマンスに影響を与えるボトルネックを検討および確認するための他の変数ポインターも使用できます。アプリケーションが書き込みに貪欲であるかどうかを判断できます。その後、レプリケーションとネットワーク転送が影響を受け、2つ以上のクラウドインフラストラクチャ内でクラスターの双方向性を得ることができます。ノードがストレスをどれだけうまく処理できるかを判断するのが最善です。特に、アプリケーションに特定の変更をプッシュする前のストレステストでは、アプリケーション製品の容量管理を判断し、現在のデータベースノードと設計がアプリケーション要件の負荷を処理できるかどうかを判断するためにテストを行うのが常に最善です。

    より詳細で豊富なデータメトリックについては、エージェントベースの監視を使用してより多くのデータを取得できます。以下を参照してください

    これは、MariaDBクラスターの監視にアプローチする方法です。完璧な視覚化は、常に管理がより簡単で迅速です。事態が悪化すると、生産性を失うわけにはいきません。また、ダウンタイムがビジネスに影響を与える可能性があります。無料版があるからといって、トラフィックの多いデータベースを管理する際の贅沢さと快適さは得られません。 1つの領域にアラーム、通知、およびデータベース管理を配置することは、ClusterControlが実行できるウォークインザパークアドオンです。

    結論

    ハイブリッドクラウド環境でMariaDBデータベースサーバーを監視することは簡単ではありません。また、テクノロジーのスタック全体を定式化する多数のサービスと複雑な関係がある場合は特に複雑です。監視に適切なツールを使用すると、アプリケーションを効果的に管理し、同時に生産性を向上させることができます。また、適切な監視ツールが手元にあれば、他のビジネスプロセスとともにアプリケーションの改善に集中する時間を増やすことができます。


    1. INTとUnique-データベースのIDフィールドの識別子

    2. 上級ユーザー向けのSQLServerでの動的データマスキング

    3. 5種類のデータベース修復

    4. DjangoORMでPostgreSQL配列フィールドをマッピングする方法