下面是场景:
场景 1:我在同一个资源池中分配了两个工作负载组,最大 CPU 为 20%。如果出现 CPU 瓶颈,限制将在每个工作负载组 10% 的情况下生效?
场景 2:我为两个工作负载组分配了两个不同的资源池,每个资源池的 MAX CPU 为 10%。如果出现 CPU 瓶颈,每个资源池/工作负载组将分别获得 10% 吗?
两种情况都会获得相同的资源分配吗?
下面是场景:
场景 1:我在同一个资源池中分配了两个工作负载组,最大 CPU 为 20%。如果出现 CPU 瓶颈,限制将在每个工作负载组 10% 的情况下生效?
场景 2:我为两个工作负载组分配了两个不同的资源池,每个资源池的 MAX CPU 为 10%。如果出现 CPU 瓶颈,每个资源池/工作负载组将分别获得 10% 吗?
两种情况都会获得相同的资源分配吗?
是的,这两种情况将导致相同的资源分配——理论上。
在场景 1 中,如果存在 CPU 压力,则在“20% 资源池”中运行的两个工作负载将“平均”共享该 CPU。考虑到 SQL Server 的调度算法是如何工作的,他们能够如何平等地共享 20% 取决于许多特定于工作负载的事情。
在场景 2 中,如果存在 CPU 压力,则运行在“10% 资源池”中的两个工作负载将各自获得至少 10% 的 CPU 时间。
在方案 2 中,您有更好的机会实现 CPU 的“公平”拆分,但方案 1 可能会根据您的特定工作负载起作用。