平台人生
作者平台人生·2016-11-17 17:43
软件开发工程师·平台人生

AIX下查看系统中逻辑和物理cpu的方法

字数 3419阅读 11317评论 3赞 9

作者:吴湘

系统中有很多命令可以查看cpu的个数,但是哪个命令输出的是逻辑cpu个数,哪个又是物理cpu个数呢?下面做一个简单的介绍。

从AIX5.3起,对于power5的机器,系统引入了SMT(Simultaneous multi-threading)的功能,其允许两个处理线程在同一颗处理器上运行,对操作系统而言,一颗物理处理器逻辑上会成为两个处理单元(逻辑处理器)。也就是说,在SMT功能启用的情况下,逻辑cpu个数是物理cpu个数的两倍,而在SMT功能禁用的情况下,逻辑cpu个数与物理cpu个数相等。从Power6以后,开始支持四个处理线程在同一颗处理器上运行。

在操作系统中,查看SMT是否开启,可以使用smtctl或者lsattr -El命令查看,如下所示:

接下来分别对Power物理机和虚拟机如何查看CPU做一个详细的介绍:

(一)物理机中查看CPU的方法

  1. bindprocessor

     # bindprocessor -q
     The available processors are:  0 1 2 3 4 5 6 7

    可以看到可用逻辑cpu个数是8个(0-7)。

  2. prtconf

     # prtconf
     System Model: IBM,9131-52A
     Machine Serial Number: 0677A5G
     Processor Type: PowerPC_POWER5
     Number Of Processors: 4   ==>物理cpu有4个(如果使用的

    是share模式,显示的则是虚拟cpu数量)

     Processor Clock Speed: 1648 MHz
     CPU Type: 64-bit
     Kernel Type: 64-bit
     LPAR Info: 1 06-77A5G

    3.lsdev

     # lsdev -Cc processor
     proc0 Available 00-00 Processor
     proc2 Available 00-02 Processor
     proc4 Available 00-04 Processor
     proc6 Available 00-06 Processor

    可以看到系统中有4个物理cpu。
    4.vmstat

     # vmstat

    System configuration: lcpu=8 mem=7936MB
    kthr memory page faults cpu

     ----- ----------- ------------------------ ------------ -----------
     r  b   avm   fre  re  pi  po  fr   sr  cy  in   sy  cs us sy id wa
     1  1 428238 41599   0   0   0  13   25   0  40 1639 182  0  0 99

    可以看到系统中有8个逻辑cpu。
    5.lparstat

    可以看到系统中有32个逻辑CPU,SMT是4.

(二)Power虚拟机中查看CPU的方法

Power虚拟化的时候采用了微分区的技术,这里需要理解下微分区概要文件的设置规则。

2.1分区概要文件 (profile) 设置规则

在创建分区的时候,选择创建Shared CPU 分区,如下图:

在接下来的页面中,需要设置虚拟 CPU 和物理 CPU 的数量:

关于上图几个数值,这里需要详细说明。

在概要文件的设置中,我们既不能将虚拟处理器设置的太多,这样会造成过多的 CPU 上下文切换;也不能将其设置的过低,那样微分区将不能调度或者获取足够的物理 CPU。

物理 CPU 的“最小处理单元数(Minimum processing units)”、“期望处理单元数(Desired processing units)”、“最大处理单元数(Maximum processing units)”的含义与普通 LPAR 没有区别,分别代表“激活分区所需的最少物理 CPU 资源”、“激活分区时期望获取的物理 CPU 资源”、“分区可以获得最多物理 CPU 资源”。

就普通 LPAR 而言,一个分区激活以后,其自动获取的 CPU 资源处于大于等于“最小处理单元数”、小于等于“期望处理单元数”的闭区间内。“最大处理单元数”的设置数值,是手工对分区做 DLPAR 操作时,LPAR 可以增加到的最多 CPU 数量。

虚拟 CPU 的“最小虚拟处理器数”、“期望虚拟处理器数”、“最大虚拟处理器数”的含义分别为:“激活分区所需的最少虚拟 CPU 数量”、“激活分区时期望获取的虚拟 CPU 数量”、“分区可以获得最多虚拟 CPU 数量”。从概念的描述上看,虚拟 CPU 的数值含义似乎无太大的差别,只是多了“虚拟”两个字,实际上区别很大。实际上,虚拟 CPU 的数量我们可以设置的很大,因为这个较大数值不会给客户带来成本,而事实上,虚拟 CPU 实际上也不存在不够用的情况,除非我们将其设置得过小,而共享 CPU 池中的空闲物理 CPU 很多。

另外上图中的Uncapped值如果勾选的话,表示允许CPU超过对应的授权,当微分区的处理能力不足并且所属的Shared processor pool中有剩余的CPU资源时,微分区可以从Shared processor pool自动获取处理器资源来提升处理能力,微分区内的虚拟CPU资源可以自动超过entitled capacity的值(此值为分区启动后分区获得的CPU资源,大于最小值,小于等于期望值)。在我们实际的生产中,topas的时候经常会看到“Entc%”的值超过了100%,就是因为设置了Uncapped。如下例所示, Entc%的值达到189.50%,其entitled capacity为4C,期望虚拟处理器数设置为8C,此分区从共享池中获取了处理器资源来提升处理能力,这里达到了7.58C,因此Entc%=7.58/4=189.50%,超过了100%。

如果Uncapped值未勾选,表示不允许CPU超过对应的授权,即使微分区的处理能力不够,微分区也不会自动的向Shared processor pool获取资源,微分区内的虚拟CPU资源不会自动超过entitled capacity的值。

Uncapped分区的优先级使用权重值(Weight项)来衡量,当多个Uncapped模式的微分区同时争夺Shared processor pool中的CPU资源,并且Shared processor pool中的CPU资源不足以为每个Uncapped模式的微分区分配足够的CPU资源时,Power服务器的Hypervisor通过权重值机制来调配每个分区获得的CPU资源。Weight的范围是0-255,权重值越大,获得CPU资源越多。比如在新一代Power小机中对于VIOS 配置为255,对于AS分区配置为128,对于数据库分区配置为192。

微分区的意义在于降低 CPU 的空闲率,从而降低客户的 IT 成本。因此,在这种情况下,我们通常将对等的虚拟 CPU 的数量设置的比物理 CPU 的数量要高,否则就失去了微分区意义。

Power小型机是有HMC进行管理的,分区的概要文件也是通过HMC的界面去进行配置的,但实际运维过程中,系统管理员访问HMC不是很方便,我们可以使用lparstat –i命令去查看实际的分区概要文件的配置情况,如下所示:

2.2 虚拟机查看CPU的方法

和物理机查看的方法一样,可以使用bindprocessor –q、lsdev -Cc processor、vmstat等命令查看,需要注意的是prtconf查看到的Number Of Processors是对应的虚拟CPU的数量。

使用lparstat命令可以查看到实际使用的物理CPU的数量,如下例中的ent的值为8,表示本台虚拟机使用的实际物理CPU是8C。

其他几项重要的项描述含义如下所示:

  • psize 池中在线物理处理器的数量。
  • ent 处理器单元中授权处理容量。此信息只在分区类型为共享时显示。
  • physc 显示消耗的物理处理器的数量。
  • app 显示共享池中可用的物理处理器。

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

9

添加新评论3 条评论

wuwenpinwuwenpin软件开发工程师南京
2018-09-05 19:33
真的很详细!
夜惊云夜惊云网络工程师软亲
2018-09-05 17:00
不错,写的很有用
apsbbapsbb系统工程师mp
2017-07-11 13:31
不错,,很详细
Ctrl+Enter 发表

本文隶属于专栏

作者其他文章

相关文章

相关问题

相关资料

X社区推广