Azure表存储事务限制

pto*_*oos 7 storage azure azure-table-storage

我正在针对ATS运行性能测试,并且在针对同一个表/存储帐户使用多个虚拟机时,它的行为有点奇怪.

整个管道是非阻塞的(等待/异步)并使用TPL进行并发和并行执行.

首先,它非常奇怪,通过这种设置,我只得到大约1200次插入.这是在L VM盒上运行的,即4核+ 800mbps.

我正在插入具有独特PK和唯一RK的100.000行,这应该利用最终分布.

更确定的行为如下.

当我运行1个VM时,每秒大约有1200个插入.当我运行3个VM时,每秒插入一次大约730个.

阅读他们指定目标的博客文章非常幽默. https://azure.microsoft.com/en-gb/blog/windows-azures-flat-network-storage-and-2012-scalability-targets/

单表分区 - 表分区是表中具有相同分区键值的所有实体,通常表具有许多分区.单个表分区的吞吐量目标是:

每秒最多2,000个实体

请注意,这适用于单个分区,而不是单个表.因此,具有良好分区的表可以处理多达20,000个实体/秒,这是上述的整体帐户目标.

我该怎么做才能够每秒使用20k,如何每个VM执行超过1,2k?

-

更新:

我现在还尝试为每个单独的节点使用3个存储帐户,并且仍然获得性能/限制行为.我无法找到合乎逻辑的理由.

-

更新2:

我已经进一步优化了代码,现在我可以执行大约1550.

-

更新3:

我现在也曾在美国西部尝试过.那里的表现更糟糕.降低约33%.

-

更新4:

我尝试从XL机器执行代码.这是8个内核而不是4个内存和带宽的两倍,并且性能提高了2%,所以很明显这个问题不在我身边..

Yve*_*ven 0

计算实例和存储帐户是否位于同一关联组中?关联性组可确保服务之间的网络邻近性达到最佳状态,并可降低网络级别的延迟。

您可以在网络选项卡下找到关联组配置。