目前这些章节的资源指标剖析均基于Power服务器、PowerVM、AIX的平台。
有上限/无上限(Capped/Uncapped)微分区可以是有上限(capped)的,也可以是无上限(uncapped)的。有上限的微分区在任何情况下获得的处理器资源(运行时物理CPU)都不会超过它的EC值。无上限的微分区在某些情况下,获得的运行时物理CPU可以超过EC值。
运行时物理CPU高于EC需要同时满足以下几个条件:1)设置capped=0。2)设置VP大于EC。3)LPAR负载较大,有CPU需求。4)CPU资源池有可用的CPU资源。
1.获取来源Nmon BBBL Sheet:capped
2.最佳实践当需要精确统计性能测试结果时,需设置Capped=1。
当Capped=0时,运行时获得的Physical CPU可以大于EC值,此时造成CPU利用率统计时的问题。当运行时获得的Physical CPU大于EC时,CPU利用率=(用户态CPU+系统态CPU)/运行时获得的Physical CPU。而运行时获得的Physical CPU是动态的,因此造成统计CPU实际使用情况的困难。
下面场景中,CPU参数设置如下
Entitled Capacity(EC)=0.8,VP=2,capped=0(EC和VP的概念在上一个章节中提到过)。
红色的线是EC能力。蓝色的线是运行时获得的physical CPU的个数,相当于获得CPU core的个数。
我们发现,蓝色的线已经跑到了红线上方。说明运行时获得的physical CPU超过了标称能力,向CPU资源池进行了借用。
此时CPU_ALL的界面中显示的CPU总利用率如图,这个图似乎和上图中physical CPU的线不太一样,似乎还有些关系,下面来剖析一下他们之间的关系。
取某个时间点的CPU_ALL sheet中的CPU数据,15:25:19这个时刻,CPU利用率为60.7%
取LPAR sheet中的CPU数据(隐去不必要的数据)
按理说CPU利用率=User%+Sys%.但60.7%这个数,即不等于EC_User%+EC_Sys%,也不等于VP_User%+VP_Sys%。
因为此时physical CPU>EC, 因此CPU_ALL中显示的CPU%=使用的CPU/Physical CPU。
以上述数据为例从EC计算:EC=0.8,EC_User%+EC_Sys% = 87.97%,LPAR相当于使用了0.8*0.8797 = 0.70376 个CPU Core
从VP计算:
VP=2,VP_User%+VP_Sys%=35.19%,LPAR相当于使用了2*0.3519 = 0.7038个CPU Core
从Physical CPU计算Physical CPU=1.161,CPU%=60.7%,LPAR相当于使用了1.161*0.607= 0.704727个CPU Core
三种算法得到相同的结果。但由于Physical CPU是波动的,因此CPU_ALL中的CPU%的分母是波动的。CPU%这个值不具有统计价值。
型号/时钟频率
1.获取来源设备类型Nmon BBBP Sheet:System Model处理器型号Nmon BBBP Sheet:Processor Type处理器频率Nmon BBBP Sheet:Processor Clock Speed
2.最佳实践建议性能测试的应用对比场景安排在同一台物理机的同一台LPAR上进行。
若无法安排在同一个LPAR进行,则尽量安排在同一台物理机上进行。
若无法安排在同一个物理机进行,则需要关注物理机的型号、处理器的型号、处理器的时钟频率。
经常有人问,我在那台机器每秒能发300笔报文,为什么这台机器每秒只能发200笔报文,他们都是4颗CPU。这种情况往往是CPU型号的差异导致。
若LPAR所在的物理服务器都是IBM的Power系列,则可根据IBM提供的不同设备类型/不同CPU频率的rPerf值,计算由于设备类型、CPU型号造成的性能差异。rPerf是IBM自己定义的针对Power服务器的基准程序,相当于一个跑分程序。在《
IBM Power Systems
Performance Report》中有所有Power机型的rPerf值查询。如下图
若两台设备是不同厂商或同一厂商的不同CPU架构,则需要引入公允的TPC。TPC指标将在后续介绍。
处理器折叠(Processor Folding)也称为VP折叠(Virtual Processor folding)。开启VP折叠功能后,当系统负载比较低的时候,AIX系统自动休眠一些VP,以减少Hypervisor调度开销,提升系统性能。当CPU折叠功能关闭时,VP不进行折叠。后续某个章节专门介绍处理器折叠对性能的影响。
1.获取来源Nmon BBBP Sheet:vpm_fold_policy 命令行schedo –Fa|grep vpm_fold_policy
2.最佳实践1为打开,0为关闭,与生产环境配置保证一致即可。在某些场景下关闭VP折叠功能(不让VP进行折叠),反而可以取得更优的性能表现。
若开关关闭,未折叠的VP(Unfolded VPs,处于活动状态的VP,即未处于休眠状态的VP)始终等于VP值。
运行时物理CPU(Physical CPU)LPAR运行过程中,获得的物理CPU Core的数量。运行时物理CPU可以低于EC,也可以高于EC,但最大等于VP数量。
1.获取来源Nmon LPAR Sheet:PhysicalCPU命令行topas:Physc
2.最佳实践若测试过程中发现,运行时Physical CPU大于EC,则说明给定的EC不足,借用到了CPU池中的资源。可通过nmon中的PhysicalCPU值是否大于EC来判断,或topas的Entc是否大于100%来判断。
这种情况会造成统计CPU实际使用情况的困难,并且通过动态抢占的物理CPU的性能效果远不如EC保障下的CPU.除非需要和生产环境保持配置一致,这种情况下,建议增大EC或设置Capped=1。