【问题标题】:Azure Event Hub - Outgoing message/bytes doesn't increase after increasing throughput units and IEventProcessor instancesAzure 事件中心 - 增加吞吐量单位和 IEventProcessor 实例后,传出消息/字节不会增加
【发布时间】:2020-07-04 09:24:09
【问题描述】:

我有一个包含 200 个分区(专用集群)的 EventHub 实例。最初,我有一个具有 70 个 IEventProcessor 实例 + 1 个吞吐量单元的消费者组。

看来我每小时只能收到 3000 万条传出消息,而传入的消息量是该数量的两倍。所以我增加到 20 个吞吐量单元和 100 个处理器实例。但是传出的消息不会增加超过 30M。我没有看到任何限制消息。

我是否应该在此处调整其他 EventHub 限制?

编辑 1:

将预取和批量大小设置为 1000 后,我仍然只看到适度增加:Imgur

【问题讨论】:

    标签: azure-eventhub


    【解决方案1】:

    我可以建议检查和执行的几件事:

    1. 增加批处理和预取大小。
    2. 检查客户端资源,例如 CPU 和可用内存。查看是否存在可能成为瓶颈的高资源利用率。
    3. 如果主机位于与 eventthub 不同的区域,网络延迟可能会减慢接收速度。如果是这样,请将主机与 eventhub 放在一起。

    考虑创建支持票,以便 PG 进行适当的调查。

    【讨论】:

    • 谢谢。什么是PG?我已经做了 2 和 3。我发现我没有为 EventProcessorOptions 设置 2 个属性,所以我就这样做了。看起来外向大幅增加。让我们等几个小时看看这是否有效
    • PG - 产品组。同时监控客户端 CPU 和内存。某些东西最终可能会成为新的瓶颈。
    • 看来,当我增加批量大小时,吞吐量上升了很多,然后又下降了?看一下屏幕截图。 imgur.com/fVil02N
    • 显然你现在有另一个瓶颈。尝试测量过程持续时间。由于客户端现在接收更大的批次,每个 ProcessEventsAsync 调用需要更长的时间才能完成。尝试从图片中删除流程逻辑,看看是否有帮助。
    • 我拆分事件并使用Task.Run() (C#) 在多个线程上进行调度。但我还是await返回任务。我不应该await吗?
    猜你喜欢
    • 1970-01-01
    • 2018-08-31
    • 2020-10-13
    • 2021-01-01
    • 2017-09-06
    • 2019-06-14
    • 1970-01-01
    • 2018-09-09
    • 1970-01-01
    相关资源
    最近更新 更多