FSS 可以与处理器集一起使用,与单独使用处理器集相比,这样可更精细地控制 CPU 资源在运行于每个处理器集中的项目之间的分配。FSS 调度程序将处理器集视为完全独立的分区,每个处理器集都单独控制 CPU 的分配。
运行于一个处理器集中的项目的 CPU 分配不会受到运行于另一个处理器集中的项目的 CPU 份额或活动的影响,因为这两个项目没有争用相同的资源。仅当项目在相同的处理器集中运行时,它们才会相互争用资源。
分配给项目的份额数是整个系统范围的份额数。无论项目在哪个处理器集中运行,此项目的每一部分都具有等量份额。
如果使用处理器集,则会针对每个处理器集中运行的活动项目来计算项目的 CPU 分配。
在不同处理器集中运行的项目分区可能具有不同的 CPU 分配。处理器集中每个项目分区的 CPU 分配仅依赖于在同一处理器集中运行的其他项目的分配。
在处理器集边界内运行的应用程序的性能和可用性不会受到新处理器集引入的影响。应用程序也不会受到对其他处理器集中运行的项目的份额分配所做更改的影响。
空处理器集(无处理器的集合)或者没有绑定进程的处理器集不会对 FSS 调度程序行为产生任何影响。
假设配有八个 CPU 的服务器正在项目 A、B 和 C 中运行若干个计算密集型 (CPU-bound) 应用程序。项目 A 分配有一个份额,项目 B 分配有两个份额,项目 C 分配有三个份额。
项目 A 只在处理器集 1 上运行。项目 B 在处理器集 1 和 2 上运行。项目 C 在处理器集 1、2 和 3 上运行。假设每个项目都有足够的进程来利用所有可用的 CPU 资源。这样,每个处理器集中始终存在对 CPU 资源的争用。
下表显示了此类系统上系统范围内总的项目 CPU 分配。
项目 |
分配 |
---|---|
项目 A |
4% = (1/6 X 2/8)pset1 |
项目 B |
28% = (2/6 X 2/8)pset1+ (2/5 * 4/8)pset2 |
项目 C |
67% = (3/6 X 2/8)pset1+ (3/5 X 4/8)pset2+ (3/3 X 2/8)pset3 |
这些百分比并没有与为项目提供的相应 CPU 份额量相匹配。但是,在每个处理器集中,每个项目的 CPU 分配率与各自的份额成比例。
在没有处理器集的同一系统上,CPU 资源的分配将有所不同,如下表所示。
项目 |
分配 |
---|---|
项目 A |
16.66% = (1/6) |
项目 B |
33.33% = (2/6) |
项目 C |
50% = (3/6) |