1

我们有一个云服务,它从用户那里获取请求,将数据(两个参数)传递给表实体并将它们放入云表中(使用BatchTableOperationsInsertOrReplace行)。该方法很简单,尽量保持轻便和快速(分区键和分区键/行键对问题得到控制)。

我们需要云服务来处理大约 10k 到 15k 的“并发”请求。我们首先使用队列来获取用户数据,并使用 Worker Role 来处理队列消息并将它们放入 SQL 中。虽然没有出现错误,也没有数据丢失,但处理速度太慢,无法满足我们的需求。现在我们正在尝试云表,看看我们是否可以更快地处理数据。请求数量越少,处理速度越快,但是当我们收到更多请求时,就会发生错误并丢失数据。

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

我对这个问题有点坚持,不知道我是否用正确的工具来解决问题。任何建议都将受到高度欢迎。

4

1 回答 1

0

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

于 2013-02-11T13:26:07.253 回答