最后更新2021/07/19
CPU的状态、参数表现出来的是分区的状态和参数。Power 6/7小型机,分区有3种模式:Shared,Dedicated,Shared dedicated partition(Dedicated分区同时选择了Processor Sharing选项,具体有Inactive或者Active两个选项。Inactive指分区在非运行状态可以将CPU贡献出去,Active选项表示分区在运行中也可以将空闲的CPU贡献给需要的分区。
图 239 Dedicated分区CPU设置界面
无论是Dedicated还是Shared分区,都有min,desire,max三种CPU选择。不同的是Dedicated分区只有物理CPU可设置,Shared分区则有物理CPU(Processing Units)和虚拟CPU(Virtual Processors)两项设置。
物理CPU代表分配给此分区的真正的CPU数值,其大小可以是小数,最小增减单位为0.1。Desired数值代表分区期望获得的数值,而最小值表示启动此分区要求当时系统必须有的空闲CPU。同时最大、最小值又控制了对此分区进行Dlpar操作可以变动的CPU的范围。物理CPU是真正的CPU,Hypervisor按照分时方式进行分配,以10毫秒为单位,0.1个CPU表示在1秒钟内将有10个CPU时间片分配给这个分区。如果是Shared分区或者Dedicated分区但是允许了Processor Sharing,则当CPU不繁忙的时候,空余的CPU计算力也可以释放出来给同一Shared Processor Pool中其他分区使用。
图 240 Shared分区CPU设置界面
Virtual processors是“虚假”的CPU,是通知给分区上安装的操作系统(AIX或者Linux)的CPU数量,因此操作系统将按照虚拟CPU数量进行进程调度。虚拟CPU的Min, Des, Max数值概念与物理CPU的概念相同,都是用来在启动分区或Dlpar操作中限定分区虚拟CPU数量变化的范围。所不同的是由于虚拟CPU是虚假的,可以随意给定数量,因此不存在CPU资源不足的问题,只要合乎一些规则(具体请参考<4.4.1规则和限制条件>一节)即可。
Uncapped选项控制了分区是否能“超额”获得物理CPU资源,也就是当分区繁忙时,如果当前Shared Processor Pool中有剩余物理CPU,是否可以抢占剩余CPU时间片。Uncapped分区可以抢占额外的CPU,而Capped分区则最多只能用到Entitlement[ 很多读者可能还是分不清Desire与Entitlement的区别,请参考基础概念中的定义。简单来说,Entitlement是动态概念,Desire是Profile的固定设置。对分区来说,它在启动时希望得到Desire的CPU,但当前启动实际拿到的CPU、运行中DLpar之后拿到的CPU、运行中每时每刻分配到的CPU都算做Entitlement的CPU,它们可以是不同的。]的物理CPU(注意,不是Max的物理CPU!)。也就是说Capped分区可以少用CPU,而把CPU捐献出来给同一Shared Processor Pool中别的分区,但不能多用。Uncapped分区既可以少用,也可以多用。那么Uncapped抢占额外的CPU是否有限度?有,就是Entitlement的Virtual Processor数(如果没有DLpar调整过,则就是Desired的VP);如果有多个Uncapped分区都要抢占CPU,空余的CPU又不能满足所有的需求,此时有什么分配规则?这就需要另外一个Weight参数来控制。Weight数值比较大的分区可以按比例抢占到更多的CPU。物理CPU、虚拟CPU、CPU分配的具体实现原理请参考<3.5 CPU共享功能>一节。
最后一个Processor compatibility mode用于控制CPU向下兼容,选择Default可以最大限度兼容为以前CPU编译的二进制代码程序以及只有较新CPU才支持的特性,例如内存压缩等。如果想利用最新CPU的特征,则要将模式改成Power 6、Power 7或Power 8/9等模式。