在Microsoft Orleans中,是否应该只有一个筒仓,因此每台计算机只有一个主机进程?每台机器可以有多个孤岛/主机进程,而每台主机有多个孤岛会带来可扩展性的好处吗?是否有关于每台计算机的最大进程数或孤岛数的建议最佳实践,以获得最大的可伸缩性/性能优势。
PS:我是MS Orleans的新手,在查阅文档时,到目前为止,我还没有发现解决任何地方的问题。
最佳答案
建议每个主机一个筒仓。可以在每个主机上运行多个孤岛,但是您不太可能会看到可伸缩性得到改善,并且性能可能会下降。每个筒仓将利用其可用的CPU和内存。
在容器托管环境(例如Kubernetes)中,这种情况不是很明显。在这些情况下,通常会在每个容器或容器上设置CPU和内存限制。因此,您可以在每个主机上可行地运行多个不同的微服务(例如,每个托管一个筒仓)。在不同的内存地址托管相同代码的多个副本仍然会带来一些嘈杂的邻居影响(例如,考虑到CPU缓存非常有限)。
即使在这样的环境中,我也建议每个容器不要超过一个筒仓。每荚:也许,如果这对您的情况有意义。确保每个节点,只要在运行筒仓的Pod /容器/命名空间上配置了资源限制即可。