MongoDB
 Computer >> コンピューター >  >> プログラミング >> MongoDB

MongoDBで使用中のストレージエンジンを確認する方法|db.serverStatus()の使い方

MongoDBのストレージエンジンを確認する基本コマンド

MongoDBで現在どのストレージエンジンが使用されているかを調べるには、db.serverStatus()storageEngineフィールドを参照します。構文は以下のとおりです。

db.serverStatus().storageEngine;

実行例

実際にmongoシェルで上記のコマンドを実行してみましょう。

> db.serverStatus().storageEngine;

実行結果は次のようになります。

{
    "name" : "wiredTiger",
    "supportsCommittedReads" : true,
    "supportsSnapshotReadConcern" : true,
    "readOnly" : false,
    "persistent" : true
}

この結果から、MongoDB 3.2以降でデフォルトとなっている「WiredTiger」ストレージエンジンが使用されていることがわかります。各フィールドの意味は以下のとおりです。

  • name: 使用中のストレージエンジンの名前
  • supportsCommittedReads: コミット済みデータの読み取り(majorityのread concern)に対応しているかどうか
  • supportsSnapshotReadConcern: スナップショット読み取り(snapshotのread concern)に対応しているかどうか
  • readOnly: 読み取り専用モードかどうか(falseなら書き込み可能)
  • persistent: ディスクへのデータ永続化に対応しているかどうか

ストレージエンジンの詳細な設定・統計情報を取得する方法

使用中のストレージエンジン名が判明したら、その名前をそのまま指定することで、キャッシュやロック、トランザクションなどに関する詳細な統計情報を取得できます。構文は以下のとおりです。

db.serverStatus().yourStorageEngineName;

今回のようにWiredTigerが使用されている場合は、次のように実行します。

> db.serverStatus().wiredTiger;

wiredTigerの出力例(抜粋)

このコマンドの出力は非常に長大になるため、ここでは主要なセクションを抜粋して紹介します。

{
    "uri" : "statistics:",
    "LSM" : {...},
    "async" : {...},
    "block-manager" : {
        "blocks read" : 482,
        "blocks written" : 312,
        "bytes read" : 2400256,
        "bytes written" : 2953216,
        ...
    },
    "cache" : {
        "bytes currently in the cache" : 814060,
        "maximum bytes configured" : 4803526656,
        "pages requested from the cache" : 46897,
        ...
    },
    ...(中略:lock、log、transaction などの各種統計)...
    "concurrentTransactions" : {
        "write" : { "out" : 0, "available" : 128, "totalTickets" : 128 },
        "read" : { "out" : 1, "available" : 127, "totalTickets" : 128 }
    }
}

主なセクションの見方

  • LSM: LSMツリーにおけるマージ処理などの統計情報
  • block-manager: ディスクに対するブロック単位の読み書き回数やバイト数
  • cache: WiredTiger内部キャッシュの使用量・最大サイズ・ページの読み書き状況。パフォーマンスチューニングで特に注目すべき項目
  • connection / cursor / session: 接続、カーソル操作、セッションに関する統計
  • lock: 各種ロックの獲得回数や待ち時間
  • log: ジャーナル(WAL)の書き込みや同期処理に関する統計
  • transaction: チェックポイントやトランザクションのコミット・ロールバック回数
  • concurrentTransactions: 同時実行数の上限チケット(読み取り128/書き込み128)の使用状況

まとめ

MongoDBのストレージエンジンを確認するにはdb.serverStatus().storageEngineを使用します。さらに、取得したエンジン名(例:wiredTiger)を指定すれば、キャッシュやトランザクションといった詳細な内部状態も把握でき、運用監視やパフォーマンスチューニング、トラブルシューティングに役立ちます。なお、エンジン名だけを手軽に知りたい場合はdb.serverStatus().storageEngine.nameとすると簡潔に取得できます。

  1. コマンドラインでインストール済みのMongoDBバージョンを確認する方法【初心者向け解説】

    MongoDBのバージョンを確認したい場面は意外と多くあります。アップデートの可否を調べたり、ドライバとの互換性をチェックしたりする際には、現在インストールされている正確なバージョン情報が必要です。本記事では、Windowsのコマンドライン(CMD)を使って、MongoDBのバージョンを簡単に確認する手順を画像付きでわかりやすく解説します。 手順1:コマンドプロンプト(CMD)を開く まず、キーボードの「START」ボタンを押し、検索欄に「RUN」と入力してEnterキーを押します。すると、以下のような「ファイル名を指定して実行」ダイアログが表示されます。 このダイアログに「CMD」と入力し

  2. 使用中のIntelグラフィックドライバーを確認・更新する方法

    ゲーマーにとって、ゲームのグラフィックやプレイ体験を支える高性能な専用グラフィックカードは不可欠です。これにより、フリーズや停止、クラッシュといったトラブルを回避できます。では、ローエンドのデスクトップPCやノートPCはどうなのでしょうか? こうしたPCに搭載されたドライバーは、重いゲームや3Dモデリングを快適に動かすことはできませんが、画面上へのHD動画出力やウェブ閲覧にはしっかり対応しています。これは、CPUに組み込まれた「統合型GPU(Integrated GPU)」が搭載されているためです。「自分のPCの内蔵グラフィックドライバーを確認するにはどうすればいいのか?」と疑問に思ったことが