假设我正在5个D1类(1核心,3.5GB RAM,50GB SSD)虚拟机上运行Service Fabric集群,并且在该集群上运行2个可靠的服务,一个是无状态的,一个是有状态的。让我们假设副本目标是3。
如何计算我的可靠收集可以容纳多少数据?
假设我添加了一个或多个有状态的服务。由于我不知道框架如何分配服务,我是否需要采取最保守的方法,并假定一个节点可能在单个节点上运行所有有状态的服务,而它们的累积内存需求低于单台机器上可用的RAM?
假设我正在5个D1类(1核心,3.5GB RAM,50GB SSD)虚拟机上运行Service Fabric集群,并且在该集群上运行2个可靠的服务,一个是无状态的,一个是有状态的。让我们假设副本目标是3。
如何计算我的可靠收集可以容纳多少数据?
假设我添加了一个或多个有状态的服务。由于我不知道框架如何分配服务,我是否需要采取最保守的方法,并假定一个节点可能在单个节点上运行所有有状态的服务,而它们的累积内存需求低于单台机器上可用的RAM?
2) 默认情况下,我们将根据默认指标平衡服务(有关指标的更多信息在此处)。所以默认情况下,两个不同服务的不同副本可能会出现在同一台机器上,但是在您的示例中,您将得到4个节点,每个节点上有1个来自一个服务的副本,然后1个节点上有两个来自两个不同服务的副本。这意味着每个服务(每个服务都有1个分区,与您的示例相符)在每个服务中只能使用1.75 GB的内存,总共在集群中使用3.5 GB。这再次少于集群的可用内存,因为您没有利用一些节点的部分。
请注意,这是最大可能的消耗,并假设没有超出服务本身的消耗。将其作为最大值不可取。您需要出于几个原因而将其减少,但最实际的原因是确保在升级和故障的情况下集群中有足够的可用容量。例如,假设您有5个升级域和5个故障域。现在假设在升级域中进行升级时,一个故障域的节点失败了。这意味着您的集群容量中约有40%可能会随时消失,您可能希望在剩余节点上留下足够的空间。这意味着如果您的集群先前可以容纳5.83 GB的状态(根据我们之前的计算),那么实际上您可能不想将更多的状态放入其中,因为过多的状态可能导致服务无法恢复到100%的健康状态(还要注意,我们不会立即构建替代副本,因此在遇到此情况之前节点必须处于关机状态超过ReplicaRestartWaitDuration时间)。在此文章中,介绍了有关指标、容量、缓冲容量(可用于确保为故障情况留下节点的空间)、故障和升级域的更多信息。
还有一些其他实际限制您能够存储的状态量。您需要执行以下几项任务: