MongoDBサーバーバージョンを使用しています:3.6.4(WiredTigerストレージエンジン)。
すべてのノードのCPU使用率グラフを共有する
走ってみた
db.currentOp({"secs_running":{$ gte:3}})
見えるだけ
{
"inprog" : [
{
"Host" : "XXXXXXXXXXXXX",
"desc" : "WT RecordStoreThread: local.oplog.rs",
"active" : true,
"currentOpTime" : "2018-05-23T12:41:42.272+0000",
"opid" : 18,
"secs_running" : NumberLong(16636),
"microsecs_running" : NumberLong("16636047730"),
"op" : "none",
"ns" : "local.oplog.rs",
"command" : {
},
"numYields" : 0,
"locks" : {
},
"waitingForLock" : false,
"lockStats" : {
"Global" : {
"acquireCount" : {
"r" : NumberLong(1),
"w" : NumberLong(1)
}
},
"Database" : {
"acquireCount" : {
"w" : NumberLong(1)
}
},
"oplog" : {
"acquireCount" : {
"w" : NumberLong(1)
}
}
}
}
],
"ok" : 1,
"operationTime" : Timestamp(1527079298, 1),
"$clusterTime" : {
"clusterTime" : Timestamp(1527079298, 1),
"signature" : {
"hash" : BinData(0,"XXXXXXXXXXXXX"),
"keyId" : NumberLong(0)
}
}
}
セカンダリマシンを再起動しようとしましたが、CPU使用率がピークに達することがあります。
readPreferenceをsecondaryPreferredとして設定しました
前もって感謝します
Asya Kamsky
のMongoDBブログのドキュメントに従って ここ CPU負荷が、MongoDB(または一般的なデータベース)のボトルネック/制限リソースになることはほとんどありません。
MapReduceジョブや集約フレームワーククエリを多数実行していない限り、CPU使用率が高い場合は、クエリを調整していない可能性があります(ドキュメントを正しい順序で読み取ることによる並べ替えをサポートするインデックスではなく)。
注:書き込みの負荷が高いということは、利用可能なディスクドライブ領域の使用について心配するのではなく、利用可能なディスクIO帯域幅について心配する必要があります。
View Metrics
に関連するAlerts and Monitoring
ここ へ。 serverStatus コマンドは、データベースの状態の概要を提供するドキュメントを返します。監視アプリケーションは、このコマンドを定期的に実行して、インスタンスに関する統計を収集できます。
db.runCommand( { serverStatus: 1 } )
たとえば、次の操作は、出力のrepl、metrics、およびlocks情報を抑制します。
db.runCommand( { serverStatus: 1, repl: 0, metrics: 0, locks: 0 } )
注:出力フィールドは、MongoDBのバージョン、基盤となるオペレーティングシステムプラットフォーム、ストレージエンジン、およびmongos、mongodを含むノードの種類によって異なりますまたはレプリカセットメンバー。
MongoDBのバージョンに固有のserverStatus出力については、適切なバージョンのMongoDBマニュアルを参照してください。
dbStats コマンドは、指定されたデータベースのストレージ統計を返します。コマンドの構文は次のとおりです。
db.runCommand({ dbStats: 1, scale: 1 })
ここで、スケールはオプションであり、デフォルトは1
です。
例えば
> db.runCommand({ dbStats: 1, scale: 1 })
{
"db" : "test",
"collections" : 1,
"views" : 0,
"objects" : 4,
"avgObjSize" : 86.75,
"dataSize" : 347,
"storageSize" : 36864,
"numExtents" : 0,
"indexes" : 1,
"indexSize" : 36864,
"fsUsedSize" : 275137204224,
"fsTotalSize" : 499632828416,
"ok" : 1
Scale引数を使用すると、バイト値のスケーリング方法を指定できます。たとえば、1024
のスケール値は、バイト単位ではなくキロバイト単位で結果を表示します。
db.runCommand({ dbStats: 1, scale: 1024 })