私は文書DB performance guidanceを読んだことがありますが、文書DBに対する最初の要求はまだ遅いです。 client.OpenAsync()
チップを使用しており、Direct
モードで接続しています(TCP
)。私はこれらの時間を参照してくださいHTTPS
上Gateway
モードを使用してAzure Document DBへの最初の要求が後続の要求よりもずっと遅いのはなぜですか?
var endpoint = "";
var key = "";
var connectionPolicy = new ConnectionPolicy
{
ConnectionMode = ConnectionMode.Direct,
ConnectionProtocol = Protocol.Tcp
};
var client = new DocumentClient(new Uri(endpoint), key, connectionPolicy);
var collection = UriFactory.CreateDocumentCollectionUri("test", "TestCollection");
await client.OpenAsync();
for (int i = 0; i < 5; i++)
{
var test = new Test { Foo = $"Test doc {i}" };
await client.CreateDocumentAsync(collection, test);
}
:
私はこの問題をレポするサンプルプログラムを(これ gistは、記録時間を含む完全なソースを持って)書かれている
Direct
モードでTCP
以上これらは:
あなたが見ることができるように、TCP
オーバーDirect
モードは、後続の要求のためにはるかに高速ですが、最初の要求はまだはるかに遅いです。
これには理由がありますか?そして、最初の応答時間を短縮するためにできることは何ですか?
UPDATE
私はHTTPS
応答が私の最初のテストでTCP
よりもはるかに遅い理由は、私たちAzureの仮想マシンのうち、すべてのHTTPSトラフィック我々は、プロキシ忘れて。オフプロキシと
、および(プロファイルに文書DB & SDK、および7をウォームアップする3)10回の反復を実行している、私は今Direct
TCP
超えるためGateway
HTTPS
超えると〜7MSのために〜11ms以下までの応答時間を参照してください。言及したポスターのような
私は、同じAzureデータセンターの外部でRESTインターフェイス(.NET以外のすべてのSDKが使用する)を使用することについて不安があると確信しています。同一のAzureデータセンターでホストされているNodeJ上で、自社のサーバーからのDocumentDB操作と比較して実行されるノード間の差分は、当社のサーバーが存在するネットワークの帯域幅と待ち時間の差によって説明されません(40倍)。私たちが同じデータセンターを運営して以来、私たちにとっては問題ではありませんが、本当にAzureの誰かがこの問題を見て欲しいと思います。 –
あなたの見出しの質問に対する答えは、他のデータベースに見られるような「温暖化」の振る舞いを模倣するので、驚くべきことではありません。 –
[DocumentDBパフォーマンスの問題]の重複が考えられます(http:// stackoverflow。com/questions/33088927/documentdb-performance-issues) – Fred