【发布时间】:2020-09-18 05:57:19
【问题描述】:
我有一个具有 4 个内核的 Windows Service Fabric 节点,我想在其上托管 3 个容器化无状态服务,其中每个 Windows 容器都分配有 1 个内核来从队列中读取消息并对其进行处理。我进行了一些实验并得到了这些结果:
- 1 个容器在节点上运行:消息大约需要 18 秒 已处理,每个容器的平均 CPU 使用率:24.7%,内存使用率:1 GB
- 2 个容器在节点上运行:消息大约需要 25 秒 已处理,每个容器的平均 CPU 使用率:24.4%,内存使用率:1 GB
- 3 个容器在节点上运行:消息大约需要 35 秒 已处理,每个容器的平均 CPU 使用率:24.6%,内存使用率:1 GB
我认为容器应该是隔离的,并且无论容器数量如何,我都希望处理时间保持在约 18 秒,但在这种情况下,添加一个容器似乎会影响其他容器的处理时间。每个容器都设置为使用 1 个核心,因此它们不应过度使用彼此的资源,并且 cpu 未达到充分利用。即使 CPU 是这里的瓶颈,我希望至少 2 个容器能够以约 18 秒的处理时间运行。
对结果有合理的解释吗?当有足够的计算资源时,难道不能在同一个 Service Fabric 主机上运行多个容器而不影响每个容器的性能吗?尝试在同一节点上运行多个容器时,Service Fabric 开销可能有多大?
谢谢!
【问题讨论】:
标签: azure-service-fabric service-fabric-stateless