分区中的虚构处理器管理

分区中的虚拟处理器管理

内核调度程序已得到增强,可结合分区的即时装入动态增加和减少虚拟处理器的使用(这可以通过分区的物理利用率来评估)。

内核调度程序每秒都评估应该激活的虚拟处理器的数目以满足分区的物理利用率。如果该数目导致虚拟处理器的使用数很高,那么增加所需的虚拟处理器的基本数目以使工作负载能够扩展。可以使用 schedo 命令来请求更多的虚拟处理器。该值用来确定是否需要启用或禁用虚拟处理器,因为调度程序每秒只调整正在使用的虚拟处理器的数目一次。因此,如果计算出的数字大于当前激活的虚拟处理器的数目,那么激活虚拟处理器。 如果该数字小于当前激活的虚拟处理器的数目,那么停用虚拟处理器。

当虚拟处理器停用时,它们不会像 DLPAR 那样从分区中动态除去。虚拟处理器不再等候着运行或接收未绑定的工作,但它仍然可以运行绑定作业。对用户和应用程序可见的联机逻辑处理器和联机虚拟处理器的数目不会更改。对系统上运行的中间件或应用程序也没有影响,因为活动和不活动的虚拟处理器是系统内部提供的。

可以使用 vpm_xvcpus 可调参数启用和禁用折叠虚拟处理器的虚拟处理器管理功能。 vpm_xvcpus 可调参数的缺省值是 0,表示启用了折叠功能。这意味着虚拟处理器正接受管理。可使用 schedo 命令来修改 vpm_xvcpus 可调参数。有关更多信息,请参阅 《AIX® V6.1 命令参考大全》,第 5 卷中的 schedo 命令。

以下示例禁用虚拟处理器管理功能:
# schedo -o vpm_xvcpus=-1
要确定是否启用了虚拟处理器管理功能,您可以使用以下命令:
# schedo -o vpm_xvcpus
要将正在使用的虚拟处理器的数目增加一个,可以使用以下命令:
# schedo -o vpm_xvcpus=1
每个虚拟处理器最多可占用一个物理处理器。 所需的虚拟处理器的数目是通过计算物理 CPU 使用数与 vpm_xvcpus可调参数值的和来确定的,如以下等式所示:
所需的虚拟处理器的数目 =
物理 CPU 使用数 + 要启用的更多虚拟处理器的数目

如果所需的虚拟处理器的数目小于当前已启用的虚拟处理器的数目,那么停用虚拟处理器。如果所需的虚拟处理器的数目大于当前已启用的虚拟处理器的数目,那么启用已禁用的虚拟处理器。连接到已禁用的虚拟处理器的线程仍然能够在该处理器上运行。

注: 应该总是将以上等式计算出的值向上取整为下一个整数。

以下示例描述了如何计算要使用的虚拟处理器的数目:

上一个时间间隔内,分区 A 对处理器的使用数为 2.5。 vpm_xvcpus 可调参数设置为 1。使用上面的等式,
物理 CPU 使用数 = 2.5
要启用的更多虚拟处理器的数目(vpm_xvcpus) = 1

所需的虚拟处理器的数目 = 2.5 + 1 = 3.5
将计算出的值向上取整为下一个整数等于 4。因此,系统上需要的虚拟处理器的数目是 4。所以,如果分区 A 运行时有 8 个虚拟处理器,那么禁用其中 4 个虚拟处理器,另外四个仍然启用。如果启用 SMT,那么每个虚拟处理器将生成 2 个逻辑处理器。因此,禁用 8 个逻辑处理器,并启用 8 个逻辑处理器
在以下示例中,适度工作负载(运行时没有启用折叠功能)占用了最少量的虚拟处理器(已分配给分区)。下面的输出是在带 4 个虚拟 CPU 的系统上由 mpstat -s 工具生成的,它指出了虚拟处理器和两个与之相关联的逻辑处理器的利用率:
        Proc0                    Proc2                   Proc4                         Proc6
        19.15%                   18.94%                  18.87%                       19.09%
    cpu0      cpu1           cpu2      cpu3          cpu4      cpu5               cpu6      cpu7
   11.09%   8.07%           10.97%   7.98%          10.93%   7.93%               11.08%   8.00%
当启用折叠功能时,系统将使用上面的等式来计算所需的虚拟处理器的数目。然后,计算得出的值会用来将虚拟处理器的数目减少到运行适度工作负载所需的数目(在不降低性能的情况下)。下面的输出是在带 4 个虚拟 CPU 的系统上由mpstat -s 工具生成的,它指出了虚拟处理器和两个与之相关联的逻辑处理器的利用率:
        Proc0                     Proc2                   Proc4                      Proc6
        54.63%                    0.01%                   0.00%                      0.08%
    cpu0      cpu1            cpu2     cpu3           cpu4     cpu5              cpu6     cpu7
   38.89%   15.75%            0.00%    0.00%           0.00%   0.00%             0.03%    0.05%
正如您从以上的数据所看到的,利用率的减少和维护辅助处理器对工作负载有益,并且当工作集中在一个虚拟处理器上时会增加相似性。但是,当工作负载很重时,折叠功能不会影响使用所有的虚拟 CPU(如果需要)的能力。