我正在使用6
每个请求更新大量var1
(它总是相同的blob)。
CloudBlockBlob
的参数设置如下:
CloudBlobClient
我注意到,经过一段时间后,每秒更新次数降低到非常低的速度,我想这是由于可用连接的数量。
您是否建议对具有一定级别并行性的多个请求使用相同的blob客户端?可能是端点参数的不同配置?
由于
编辑1: 我尝试在所有线程中使用单个客户端,但行为完全相同。一开始吞吐量非常高,然后连接数量大幅下降并稳定在非常低的水平。这就像活动连接不被回收,它们会被blob客户端丢失。
答案 0 :(得分:0)
实现稳定的高吞吐量需要一定程度的并行性。 看看您是否可以利用Azure Storage Data Movement library。
// Use the interfaces from the new Azure Storage Data Movement Library to upload the blob
// Setup the number of the concurrent operations
TransferManager.Configurations.ParallelOperations = 64;
// Setup the transfer context and track the upoload progress
TransferContext context = new TransferContext();
context.ProgressHandler = new Progress<TransferProgress>((progress) =>
{
Console.WriteLine("Bytes uploaded: {0}", progress.BytesTransferred);
});
// Upload a local blob
var task = TransferManager.UploadAsync(
sourcePath, destBlob, null, context, CancellationToken.None);
task.Wait();
AzCopy所基于的东西,所以你知道这是一项严肃的事情。
答案 1 :(得分:0)
我找到的解决方案是在system.net中将maxconnection
设置为1000。
比blob端点上的ConnectionLimit
工作得更好。