Microsoft Orleans 中每台机器有多少个 Silos

Tol*_*olu 3 c# actor orleans .net-core

在 Microsoft Orleans 中,是否应该只有一个筒仓,因此每台机器只有一个主机进程?每台机器是否可以有多个孤岛/主机进程,每台主机有多个孤岛是否有任何可扩展性优势?是否有关于每台机器的最大进程数或筒仓数量的推荐最佳实践,以获得最大的可扩展性/性能优势。

PS:我是 MS Orleans 的新手,在我对文档的审查中,到目前为止我还没有在任何地方看到这个问题。

Reu*_*ond 7

建议每个主机一个筒仓。每个主机运行多个孤岛是可能的,但您不太可能看到可扩展性改进,并且可能会看到性能下降。每个筒仓都将利用可用的 CPU 和内存。

这种情况在容器托管环境中并不明显,例如 Kubernetes。在这些情况下,您通常会在每个 pod 或容器上设置 CPU 和内存限制。因此,您可以切实可行地为每个主机运行多个不同的微服务(例如,每个微服务都托管一个孤岛)。在不同的内存地址托管相同代码的多个副本仍然会产生一些嘈杂的邻居效应(例如,考虑到 CPU 缓存非常有限)。

即使在这样的环境中,我也不建议每个容器超过一个筒仓。每个 pod:也许,如果这对您的情况有意义。每个节点,当然,只要在运行筒仓的 pods/containers/namespaces 上配置了资源限制。