使用Microsoft.Azure.DocumentDB
nuget包中的.Net API从Azure cosmosDB集合读取文档时,我遇到了奇怪的延迟峰值。
记录摘要以读取同一文档100次:
Reading 126: 31ms
Reading 126: 12ms
Reading 126: 29ms
Reading 126: 1172ms
Reading 126: 1197ms
Reading 126: 29ms
Reading 126: 29ms
Reading 126: 42ms
这样的峰值不能始终如一地重现,但是我使用以下所示的测试方法在同时触发约100个请求时重现了它们。延迟增加不是渐进的,而是跳跃了1+秒(甚至更多),这令人怀疑。某种饥饿,但是在哪里?
这种等待时间峰值可能是什么原因?该如何解决?
其他详细信息:
DocumentClient
版本(1.22.0)DocumentClient
。用于测试的代码:
public async Task<String> Test(int count)
{
var tasks = Enumerable.Range(1, count)
.Select(async (row, index) =>
{
string documentId = "1";
var documentUri = UriFactory.CreateDocumentUri(@"db", "test", documentId);
var result = await Client.ReadDocumentAsync(documentUri).ConfigureAwait(false);
return "Reading " + documentId + ": " + (int)result.RequestLatency.TotalMilliseconds + "ms";
});
String[] results = await Task.WhenAll(tasks).ConfigureAwait(false);
return String.Join("<br/>", results);
}