yangjianxv
作者yangjianxv2016-11-17 14:54
部门总经理, 成方金融科技有限公司

性能指标之资源指标 CPU配置参数对性能的影响

字数 4063阅读 8846评论 1赞 10

说到系统性能测试以及性能问题的分析,涉及性能指标、测试策略、辅助工具、数据处理、监控方法、分析思路的方方面面。而系统性能指标有可以分为三大类,资源指标、服务指标和业务指标。

  • 狭义的资源指标指CPU、内存、网络IO、磁盘IO相关指标,比如CPU利用率、内存与Paging Space之间的换页频率、网络IO的响应时间、磁盘的IOPS、MBPS、响应时间等,广义的资源指标还包括进程数量、数据库连接池数量、Session数量等等。
  • 服务指标指计算机系统对外提供服务的相关能力指标,吞吐量(TPS)、响应时间等。
  • 业务指标指从业务、用户的角度看待指标,如业务类型、业务配比、并发用户数等。

我们先从性能指标之资源指标中的CPU说起,CPU的指标中有:

  • 配置类指标
  • 利用率类的指标
  • 亲和性类的指标

本节介绍一下系统环境中CPU的一些配置参数,以及他们对系统性能的影响。


CPU核数

Dedicated模式

当CPU分配模式为dedicated模式时,CPU个数即为核的个数。
1.获取来源
Nmon BBBP Sheet:Number Of Processors
命令行Prtconf或lsconf:Number Of Processors

2.最佳实践
建议性能测试所用的LPAR CPU核数与生产保持一致,资源不足时可以采用1/2,1/3的比例缩减,但不应小于2核。

Sharing模式

当CPU分配模式为sharing模式时,EC个数可以理解为核的个数,参见标称计算能力(Entitled Capacity, EC)。

标称计算能力(Entitled Capacity,简称EC)

EC指LPAR获得的CPU Core的标称数量,这个数量是指当LPAR需要的时候,一定能从CPU资源池中获得的CPU Core的数量;如果业务负载不需要这么多标称能力,也可以将CPU共享给其他LPAR。

1.获取来源
Nmon BBBL Sheet:Entitled Capacity
命令行lsattr -El sys0 | grep proc:ent_capacity

2.最佳实践
建议性能测试所用的LPAR的CPU EC值与生产EC值保持一致,若生产为dedicated模式,则测试环境EC与生产环境CPU核数一致。资源不足时可以采用1/2,1/3的比例缩减,但EC不应小于2。
通过动态抢占获得的物理CPU的性能效果远不如EC保障下的CPU。

虚拟CPU(Virtual CPU,以下简称VP)

PowerVM平台为逻辑分区(LPAR)提供的虚拟CPU,微分区中AIX操作系统(prtconf或lsconf)看到的CPU Core的个数即VP的个数。当VP明显大于EC,且当capped=1时,则会产生过多的Hypervisor层面的系统调度开销。

1.获取来源
Nmon BBBL Sheet:Virtual CPU
命令行Prtconf或lsconf:Number Of Processors

2.最佳实践
若测试环境EC与生产保持一致,则VP同样保持一致。若测试环境EC等比例缩减,VP同样等比例缩减。

若生产环境为dedicated模式,则测试环境不论EC值多少,均设置EC=VP且Capped=1,以最大程度接近生产性能表现。若VP与EC的比值越大,Hypervisor层面的系统调度开销越大,操作系统获得的CPU时间片越少,CPU利用率无法随着吞吐量的增长而增长,响应时间也会延长。

在一些不需要精确统计CPU占用率的场景且希望必要时获得更多的CPU能力,则设置VP>EC且Capped=0,表示运行时获得的物理CPU Core个数可以大于EC,但最多与VP相等。

逻辑CPU个数(Logical CPU)

操作系统将以逻辑CPU进行进程调度,每个逻辑CPU可以接受操作系统层的一个软件线程。操作系统以逻辑CPU的个数(VP x SMT)进行线程调度,若逻辑CPU明显多于物理CPU线程(或VP明显多于EC,且当capped=1时),则会产生过多的Hypervisor层面的系统调度开销。

对于独占CPU分区,逻辑CPU = 物理CPU x SMT。
对于共享CPU分区,逻辑CPU = VP x SMT。
逻辑CPU不需进行设置,系统依据上述公式自动得出。

1.获取来源
Nmon BBBL Sheet:Logical CPU

2.最佳实践
逻辑CPU个数是操作系统进程调度的最大并发值,当逻辑CPU较少,而系统、应用的进程过多时,调度效率较低。因此主要应用的并行进程/线程数宜小于逻辑CPU个数。

SMT

并发多线程 (SMT)技术允许在同一个物理处理器(即CPU Core)上同时运行多个单独的硬件指令流,即实际物理CPU线程,相当于x86平台的超线程,SMT 可以显著提高处理器和系统的总体吞吐量。对于Power7平台,每个CPU Core有4个并发多线程(SMT=4);对于Power8平台,每个CPU Core有8个并发多线程。

1.获取来源
Nmon BBBL Sheet:SMT Threads

2.最佳实践
SMT值和CPU核数(或VP数)共同决定了逻辑CPU的个数,即操作系统进程调度的最大并发值。测试过程中,不仅需关注EC、VP,并且需要关注SMT值。

有上限/无上限(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实际使用情况的困难。当然,其实还是有办法统计的,后续的章节会介绍。

型号/时钟频率

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值查询。如下图

rPerf文档

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(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。

下节预告

CPU影响性能的主要配置参数,先介绍到这里,下一节介绍CPU利用率类的指标,如何在虚拟化环境下(PowerVM)准确的读取CPU利用率指标,同时介绍CPU利用率的细分User%、Sys%、Wait%、Idle%各自的含义,以及如何利用它们协助分析性能问题。

专栏其他链接
性能指标之资源指标 CPU利用率的性能分析
性能指标之资源指标 CPU亲和性调整优化
性能指标之资源指标 CPU亲和性原理介绍及如何量化读数
性能指标之资源指标 如何精确计算每笔交易消耗的CPU

微信公众号:性能测试与调优

如果觉得我的文章对您有用,请点赞。您的支持将鼓励我继续创作!

10

添加新评论1 条评论

AcdanteAcdante技术总监, SHFY
2016-11-18 11:13
学习学习
Ctrl+Enter 发表

本文隶属于专栏

作者其他文章

相关问题

X社区推广