针对azure的大规模测试拒绝连接或服务不可用

时间:2013-02-11 12:56:31

标签: azure azure-storage azure-table-storage

我们有一个云服务来获取用户的请求,将数据(两个参数)传递给表实体并将它们放入cloudtables(使用BatchTableOperationsInsertOrReplace行)。方法很简单,试图让它保持轻快(分区键和parttionkey / rowkey对问题得到控制)。

我们需要Cloud Service来处理大约10k到15k的“并发”请求。我们首先使用队列来获取用户数据,使用Worker Role来处理队列消息并将它们放入SQL中。尽管没有错误上升且没有数据丢失,但处理速度太慢,无法满足我们的需求。现在我们正在尝试使用云表来查看是否可以更快地处理数据。由于请求数量较少,流程很快,但随着我们收到更多请求,会发生错误并丢失数据。

我已经设置了一些虚拟机,用于在云服务所在的同一虚拟网络中进行测试,以防止防火墙停止请求。具有1000个线程和5个循环的jMeter测试获得0%错误。来自2个虚拟机的相同测试也可以。添加第三台计算机会导致第一次错误(0.14%请求获得服务不可用503错误)。来自10台机器,1000个线程和2个环路的大规模测试会产生大量的503和/或连接拒绝错误。我们尝试将云服务扩展到最多10个实例,但这对结果几乎没有影响。

我对此问题有点困惑,不知道我是否正在用正确的工具来解决问题。任何建议都将受到欢迎。

1 个答案:

答案 0 :(得分:0)

该问题可能与存储级别的限制有关。请查看Windows Azure存储团队在此处指定的可伸缩性目标:http://blogs.msdn.com/b/windowsazurestorage/archive/2012/11/04/windows-azure-s-flat-network-storage-and-2012-scalability-targets.aspx。您可能希望尝试进行负载测试,同时考虑这些可伸缩性目标。