sql >> データベース >  >> NoSQL >> MongoDB

MongoDBのPerconaサーバーの監視-主要な指標

    本番環境で重要なデータベースサービスを実行する場合、データベースを認識して監視する必要があります。使用しているデータベースの主要なメトリックを理解する必要があります。たとえば、WiredTigerストレージエンジンでMongoDBを実行する場合、接続、認証、操作、レプリケーションラグ、ページフォールト、ロックなどを知る必要があります。

    このブログでは、MongoDBのPerconaServerを監視するために使用されるいくつかの主要なメトリックについて説明します。

    データベース接続

    データベース接続は、どのデータベースでも重要な主要な指標の1つです。アプリケーションからデータベースへの現在の接続/スレッドを監視します。次のコマンドで現在の接続を確認できます:

    > db.serverStatus().connections
    アプリケーションがデータベースにアクセスしている量を示します。接続数の突然の急増は、データベースサーバーの問題を引き起こす可能性があります。期待されているかどうか?。

    ClusterControlは、以下に示すように接続に関連する情報を提供します。

    コマンド操作

    コマンド操作メトリックは、挿入、更新、削除、または選択のいずれかで、現在の操作を監視します。以下のコマンドを実行すると、現在のコマンド操作を監視できます。

    >db.serverStatus().opcounters

    コマンド操作から、書き込みまたは読み取りが重いかどうかにかかわらず、アプリケーションのワークロードを実際に確認できます。この観点から、いくつかの決定を下すことができます。たとえば、読み取りトラフィックが多い場合は、セカンダリノードをスケーリングして読み取りクエリを分散することができます。

    ClusterControlでのコマンド操作の監視は簡単です。以下に示すように、エージェントベースの監視を有効にして、MongoDBサーバーダッシュボードにOpsCounterメトリックを表示する必要があります。

    ReplicaSetラグ

    ReplicaSetまたはShardClusterアーキテクチャを実行する場合、重要な重要な指標の1つはレプリケーションの遅延です。レプリケーションラグは、セカンダリノードがプライマリノードに書き込まれているデータに追いつかない場合に発生します。この理由は、ネットワークレイテンシ、ディスクスループット、低速クエリなどによって異なる場合があります。

    プライマリノードで次のコマンドを実行すると、現在のレプリケーションラグ情報を確認できます。

    > rs.printSlaveReplicationInfo() 

    ラグ情報のメトリックは秒単位であるため、同時接続が多い場合、mongodbでのレプリケーションは非同期であるため、セカンダリノードで数秒遅れることがあります。

    ClusterControlでは、メトリックの最大レプリケ​​ーションラグはMongoDBレプリカセットにあります。監視ダッシュボード。

    ページフォールト

    ページフォールトは、ほとんどの場合、同時発生率が高く、負荷が高いアプリケーションで発生します。ページフォールトは、mongodbプロセスがデータを取得したいが、メモリで利用できない場合に発生し、mongodbサーバーがディスクからデータを読み取ります。

    ページフォールトの現在の状態を監視するには、次のコマンドを使用できます。

    >db.serverStatus().extra_info.page_faults
    ページフォールトの数がわかります。負荷が高いときに値が増加し、サーバーのパフォーマンスが低下する可能性があります。遅いクエリログも確認することをお勧めします。

    ロック

    ロックはMongoDBの重要な指標でもあり、通常、同じデータセットに複数のトランザクションがある高負荷のアプリケーションで発生します。ロックすると、重大なパフォーマンスの問題が発生する可能性があります。

    以下のコマンドを使用して、データベース内の現在のロック操作を確認できます。

    >db.currentOp()

    db.currentOp()コマンドを実行すると、ロックに関連する情報がいくつかあります。 ClusterControlは、以下に示すように、MongoDBダッシュボードでグローバルロックを監視します。

    結論

    これらは、Percona ServerforMongoDBで監視する重要な主要なメトリックの一部です。これらは、サーバーで何が起こっているかをリアルタイムで表示し、アクションを実行できる異常を発見できます。 ClusterControlは、MongoDBデータベースの可視性を提供するいくつかのダッシュボードを提供します。


    1. MongoErrorを解決する方法:CosmosDBへの接続中にプールが破壊されました

    2. redisのluaで現在の日付と時刻を取得する

    3. HerokuのRedistogoとSidekiq:接続できません

    4. MongoDB正規表現検索-javascriptドライバーとNodeJSの使用から始まります