我正在运行Azure Web角色,该角色将非常小的blob存储到Azure存储中。 (Blob上传是从服务器完成的,而不是从浏览器完成的。)我已经搜索了堆栈溢出和互联网的其余部分,以获得有关优化blob存储性能的提示,我相信我已经检查并实现了所有常见的嫌疑:上传异步,允许无限制的传出Web连接(现在似乎是Web角色的默认设置,不再需要在web.config或代码中显式设置)。
调整我允许的并发上传数量有所不同,但无论我尝试过什么,我似乎每秒上传大约1,000个blob 。这是在Azure Web角色中运行时,与存储帐户(East US)位于同一区域。我通过良好的互联网连接从家里运行这个速度并不是很少,大约700 blobs / sec,这似乎告诉我,不是网络延迟限制了速率,而是存储服务的实际处理时间。
我通常不会认为这些服务这些费率太可怕了,但我读过微软拥有每秒约20,000次存储交易的速度,所以我一直是对这些结果很少感到失望。
我想从那些真正试图突破blob存储限制的人那里获得一些反馈。每秒约1000次小上传听起来是对的吗?或者我是否应该采取其他措施来改善这一点?如果需要,我会发布代码,但我宁愿不接受推测性答案,我想听听开发人员的意见,他们可以确认我的结果是合理的,或者他们看到了更高的吞吐量。 / p>
我应该补充一点,我目前正在以小型网络角色运行它。我也尝试过中等网络角色,并没有看到任何重大差异。
修改 经过几天的开发和测试,我的上传率似乎突然增加。不是很多,但可能是另一个〜每秒200。在浏览网页时,我注意到Azure文档中的一条评论,指出“随着使用量的增加,存储帐户会自动扩展。”所以我想知道它是否确实能够提供更高的费率,但是直到它看到持续的高音量时才会自动放大。对此的一些确认也将非常感激。
答案 0 :(得分:1)
根据请求的小小,问题可能由Nagle’s Algorithm is Not Friendly towards Small Requests引起 - 尽管通常我会看到队列/表操作。尝试禁用Nagle,并告诉我这是否有所不同。作为fyi,您必须在建立连接之前禁用它,否则更改将不会生效。
杰森