1

私は Mongo でかなりの経験を積んできましたが、この問題 (もちろん、リリースの前日にどこからともなく現れた問題) についてフラストレーションの涙が出そうになっています。

基本的に、ドキュメントを取得するためにデータベースにクエリを実行していますが、特にクエリが何も返さないため、通常よりも 1 桁 (または 2 桁) も悪くなります。

クエリ:

//searchQuery ex: { "atomic.Basic^SessionId" : "a8297898-7fc9-435c-96be-9c5e60901e40" }
var doc = FindOne(searchQuery); 

説明:

{
   "cursor":"BtreeCursor atomic.Basic^SessionId",
   "isMultiKey" : false, 
   "   n":0,
   "nscannedObjects":0,
   "nscanned":0,
   "nscannedObjectsAllPlans":0,
   "nscannedAllPlans":0,
   "scanAndOrder":false,
   "indexOnly":false,
   "nYields":0,
   "nChunkSkips":0,
   "millis":0,
   "indexBounds":{
      "atomic.Basic^SessionId":[
         [
            "a8297898-7fc9-435c-96be-9c5e60901e40",
            "a8297898-7fc9-435c-96be-9c5e60901e40"
         ]
      ]
   }
}

mongotop が報告する読み取り時間は最大で 15 ミリ秒ですが (それは複数のクエリにまたがるはずです)、50 ~ 150 ミリ秒かかることがよくあります。データベースには 6k のドキュメントしかなく (インデックスには 2k 程度しかなく、インデックスを使用していると説明されています)、検索対象のドキュメントが存在しないため、逆シリアル化の問題になることはありません。

すべてのクエリでこれほど悪いわけではありません (ほとんどの場合、サブ ミリ秒)。確かに、B ツリーはそれほど大きな分散を持つほど大きくありません。

どんなアイデアでも私の永遠の感謝を持っています.

4

1 に答える 1

0

MongoTop は合計クエリ時間を報告していません。MongoDB が特定のロックの保持に費やしている時間を報告します。

そのクエリは、説明によると0msで返されました(これは非常に迅速です)。あなたが説明していることは、ネットワーク遅延のように聞こえます。ノードに ping を送信したときのレイテンシーはどのくらいですか? ネットワークが不安定である可能性はありますか?

どのバージョンの MongoDB を使用していますか? MongoDB と C# ドライバーの両方を最新の安定したバージョンにアップグレードすることを検討してください。

于 2013-11-13T00:01:46.633 に答える