POWERVM下 CPU 利用率的监控.docx
- 文档编号:12624441
- 上传时间:2023-04-21
- 格式:DOCX
- 页数:22
- 大小:165.06KB
POWERVM下 CPU 利用率的监控.docx
《POWERVM下 CPU 利用率的监控.docx》由会员分享,可在线阅读,更多相关《POWERVM下 CPU 利用率的监控.docx(22页珍藏版)》请在冰豆网上搜索。
POWERVM下CPU利用率的监控
普通LPARCPU利用率的查看
在AIX操作系统中,可以监控CPU利用率的命令有很多,最常用的nmon、topas、vmstat、sar–u等等。
在单CPU线程(SMTOFF),单线程应用的环境下,CPU利用率的输出结果很容易看懂,如下:
User%代表系统中用户进程占用的CPU比率;Sys%代表系统调用所占的CPU比率,Wait%代表等待I/O响应的CPU比率,Idle%代表空闲CPU的比率。
下面我们将主要分析在微分区中,CPU的调度原理以及监控方法,以及在多CPU线程和多线程应用的环境下,监控CPU利用率的方法。
CPUUser%Sys%Wait%Idle%|
00.01.01.098.0|>
10.00.00.0100.0|>
20.020.00.080.0|ssssssssss>
30.010.00.090.0|sssss>
40.04.11.094.8|ss>
50.00.00.0100.0|>
60.010.00.090.0|sssss>
70.030.00.070.0|s
回页首
微分区CPU利用率以及调度的探究
微分区概要文件的设置规则
在创建分区的时候,选择创建共享CPU分区,如下图:
图1.创建共享CPU分区
在接下来的页面中,需要设置虚拟CPU和物理CPU的数量:
图2.设置虚拟CPU和共享CPU的数量。
关于上图几个数值,这里需要详细说明。
我们知道,在当前的PowerVM版本中,一个虚拟CPU最多可以调度1个物理CPU。
在概要文件的设置中,我们既不能将虚拟处理器设置的太多,这样会造成过多的CPU上下文切换;也不能将其设置的过低,那样微分区将不能调度或者获取足够的物理CPU。
物理CPU的“最小处理单元数”、“期望处理单元数”、“最大处理单元数”的含义与普通LPAR没有区别,分别代表“激活分区所需的最少物理CPU资源”、“激活分区时期望获取的物理CPU资源”、“分区可以获得最多物理CPU资源”。
就普通LPAR而言,一个分区激活以后,其自动获取的CPU资源处于“大于等于“最小处理单元数”、小于等于“期望处理单元数”的闭区间内”。
“最大处理单元数”的设置数值,是手工对分区做DLPAR操作时,LPAR可以增加到的最多CPU数量。
虚拟CPU的“最小虚拟处理器数”、“期望虚拟处理器数”、“最大虚拟处理器数”的含义分别为:
“激活分区所需的最少虚拟CPU数量”、“激活分区时期望获取的虚拟CPU数量”、“分区可以获得最多虚拟CPU数量”。
从概念的描述上看,虚拟CPU的数值含义似乎无太大的差别,只是多了“虚拟”两个字,实际上区别很大。
实际上,虚拟CPU的数量我们可以设置的很大,因为这个较大数值不会给客户带来成本,而事实上,虚拟CPU实际上也不存在不够用的情况,除非我们将其设置得过小,而共享CPU池中的空闲物理CPU很多。
微分区的意义在于降低CPU的空闲率,从而降低客户的IT成本。
因此,在这种情况下,我们通常将 对等的虚拟CPU的数量设置的比物理CPU的数量要高,否则就失去了微分区意义。
专用CPU分区的CPU共享功能
在PowerVM中,专用CPU分区在其CPU空闲的时候,也可以将其空闲的CPU处理能力分给CPU共享池。
这个功能的打开与关闭,由如下两个系统参数控制,我们一般将两个参数的数值设置相同:
smt_snooze_delay:
控制CPU的第1个、第2个线程的释放时间。
smt_tertiary_snooze_delay:
控制CPU的第3个、第4个线程的释放时间。
这两个参数的含义是:
当Hypervisor发现专用CPU分区CPU空闲的时候,将空闲的CPU分给CPU共享池使用的delay时间,如果这个数值设置为0,则表示没有延迟,即立刻将空闲CPU共享给CPU共享池;设置为-1,表示关闭此功能;如果将数值设置成0-100000000之前的数值,则表示延迟的微秒数,数字越大,延迟越大,CPU共享池能获取到的专用CPU分区的空闲CPU的时间就更长。
在系统中,我们用schedo-h命令可以查看两个参数的含义:
#schedo-hsmt_snooze_delay
Helpfortunablesmt_snooze_delay:
Purpose:
Amountoftimeinmicrosecondsinidleloopwithout
usefulworkbeforesnoozing(callingh_cede).
Values:
Default:
0
Range:
-1-100000000
Type:
Dynamic
Unit:
microsecs
Tuning:
Avalueof-1indicatestodisablesnoozing,avalueof0
indicatestosnoozeimmediately.Themaximumvalueof100000000
correspondsto100seconds.
atsnfs[/atspersonal/weixinyu/123]#
#schedo-hsmt_tertiary_snooze_delay
Helpfortunablesmt_tertiary_snooze_delay:
Purpose:
Amountoftimeinmicrosecondsinidleloopontertiarythreadwithout
usefulworkbeforesnoozing(callingh_cede).
Values:
Default:
0
Range:
-1-100000000
Type:
Dynamic
Unit:
microsecs
Tuning:
Avalueof-1indicatestodisablesnoozing,avalueof0indicatesto
snoozeimmediately.Themaximumvalueof100000000correspondsto100seconds.
微分区“处理器折叠”(ProcessorFolding)功能
在PowerVM的微分区环境下,PowerVMHypervisor负责虚拟CPU的调度。
我们继续上一小节中关于设置微分区概要文件的例子,假设我们将概要文件中虚拟CPU的数量设置的比物理CPU数量多(实际上这样才有意义)。
在微分区中,系统在CPU利用率低的时候,可以关闭一些虚拟CPU,以减少CPU上下文切换,降低系统开销,从而提高性能;而当CPU利用率很高,系统将会相应地启用被关闭的CPU,这个功能被成为“处理器折叠”(ProcessorFolding)功能,它主要由如下参数决定:
#schedo-ovpm_xvcpus
vpm_xvcpus=0
vpm_xvcpus 可调参数的缺省值是 0,表示启用了折叠(ProcessorFolding)功能。
这意味着虚拟处理器正接受管理。
#schedo-ovpm_fold_policy
vpm_fold_policy=1
可以根据分区是共享处理器分区还是专用处理器分区来启用或禁用“处理器折叠”(ProcessorFolding)这一虚拟处理器管理功能。
另外,当分区处于静态省电方式时,将对共享处理器分区或专用处理器分区自动启用处理器折叠功能(ProcessorFolding)。
vpm_fold_policy参数有三个设置功能位:
设置为1时,此位表明启用处理器折叠功能(如果分区正在使用共享处理器)。
设置为2时,此位表明启用处理器折叠功能(如果分区正在使用专用处理器)。
设置为4时,如果分区处于静态省电方式,那么此位将禁止自动设置处理器折叠功能。
对于微分区的环境下,vpm_xvcpus为0,vpm_fold_policy设置为1即可,我们不需要对两个参数的默认数值进行修改。
例如,我们有一个分区,虚拟CPU的数量是6,物理CPU的资源是0.6:
图3.利用DLPAR查看分区配置
此时,系统十分空闲:
查看到系统中虚拟CPU的数量:
#prtconf|grep"NumberOfProcessors"
NumberOfProcessors:
6
查看到由于系统开启了SMT-4,因此系统中逻辑CPU的数量为24
#vmstat15
Systemconfiguration:
lcpu=24mem=4096MBent=0.60
kthrmemorypagefaultscpu
---------------------------------------------------------------------------
rbavmfrerepipofrsrcyinsycsussyidwapcec
00295379699293000000000019900.022.6
00295379699293000000000019900.012.2
00295379699293000000000019900.012.0
00295379699293000000000019900.011.9
0029537969929300000040152204019900.012.1
此时6个虚拟CPU的24个逻辑CPU并未完全展开:
#mpstat15
Systemconfiguration:
lcpu=24ent=0.6mode=Uncapped
cpuminmajmpcintcsicsrqmiglpasyscussywaidpc%eclcs
02700308280123149739510780120.011.4252
1000190000-0040960.000.419
2000190000-0050950.000.419
3000190000-0050950.000.419
4000100000-0060940.000.09
1200040000-0030970.000.03
13000370000-00580420.000.031
1600060000-0080920.000.04
20000120000-00140860.000.010
U------------0990.5999.0-
ALL270043428012314973950001000.022.7366
--------------------------------------------------------------------------------
cpuminmajmpcintcsicsrqmiglpasyscussywaidpc%eclcs
014001104860376439716098790130.011.3851
1000650000-0060940.000.461
2000610000-0020980.000.361
3000470000-0030970.000.347
400090000-00750250.000.09
130001160000-00560440.000.098
U------------0980.5997.6-
ALL1400140286037643971609010990.012.41127
--------------------------------------------------------------------------------
如果将vpm_fold_policy设置为4,即关闭该功能,那么24个逻辑CPU将全部展开:
#schedo-ovpm_fold_policy=4
Settingvpm_fold_policyto4
#mpstat11
Systemconfiguration:
lcpu=24ent=0.6mode=Uncapped
cpuminmajmpcintcsicsrqmiglpasyscussywaidpc%eclcs
06100194724101100173830140.010.9151
163009110110000190810.000.311
2630010110110000190810.000.312
363009110110000190810.000.310
45900202413019200460540.000.224
562009110110000380620.000.110
6630090220110000480520.000.190
758009110110000400600.000.110
86300191101000500500.000.221
9630010110110000420580.000.112
1062009110110000460540.000.111
1161009110110000460540.000.111
12640010110110000420580.000.112
13450025110110000510490.000.124
1463009110110000450550.000.110
15630091101000480520.000.110
16620015640375171480510.000.118
1761009110110000380620.000.111
1864009110110000420580.000.111
19590010110110000410590.000.112
2060001310252019810119580230.000.465
21620091101000310690.000.210
22610010110110000300700.000.212
2364009110110000300700.000.210
U------------0950.5795.4-
ALL14690053422513102696135020980.035.0578
在系统中,还有一个内核参数:
vpm_xvcpus。
它的作用是控制当微分区CPU不足的时候,系统可以自动启动的微分区的数量。
如果将这个值设置为-1,则表示关闭此功能;若设置为0,表示启用了折叠功能(ProcessorFolding)。
这意味着虚拟处理器正接受管理,分区启用了CPU折叠功能。
默认数值设置为0,表示分区可以启用其关闭的虚拟CPU;如果vpm_xvcpus数值设置大于1,则表示系统不仅可以启用其关闭的虚拟CPU,还可以启动额外的虚拟CPU,前提是分区的虚拟CPU总数不大于分区概要文件最大虚拟CPU数量的设置。
atsnfs[/]#schedo-hvpm_xvcpus
Helpfortunablevpm_xvcpus:
Purpose:
Settingthistunabletoavaluegreaterthan-1willenablethescheduler
toenableanddisablevirtualprocessorsbasedonthepartition'sCPUutilization.
Values:
Default:
0
Range:
-1-2147483647
Type:
Dynamic
Unit:
processors
Tuning:
Thevaluespecifiedsignifiesthenumberofvirtualprocessorstoenableinaddition
tothevirtualprocessorsrequiredtosatisfytheworkload.
分区需要的虚拟CPU的总数=物理CPU使用数+要启用的更多虚拟处理器的数目。
如果所需的虚拟处理器的数目小于当前已启用的虚拟处理器的数目,则利用分区的CPU折叠功能(ProcessorFolding)停用部分虚拟处理器。
如果所需的虚拟处理器的数目大于当前已启用的虚拟处理器的数目,则启用已禁用的虚拟处理器。
连接到已禁用的虚拟处理器的线程仍然能够在该处理器上运行。
uncapped分区CPU调度
分区激活的时候,会读取概要文件中物理CPU“期望处理单元数”的数值,如果可以从CPU共享池中获取到设定的CPU资源,则以这个数量的物理CPU激活;若能获取到得物理CPU的资源小于概要文件中“最小处理单元数”数值的设置,则无法激活分区;或若能获取到得物理CPU的资源介于“期望处理单元数”和“最小处理单元数”之间,则会以这个数值激活分区。
分区激活以后,系统将会监控CPU的利用率,如果每个虚拟CPU的利用率都低于50%,系统将会关闭一些虚拟CPU,以减少CPU的上下文切换。
当然,减少后的虚拟CPU的数量应不小于物理CPU的数量。
此时,微分区中物理CPU总的利用率超过50%,那么系统会将关闭的虚拟CPU重新打开,以便分区可以获取到额外的物理CPU资源。
我们知道,Power7服务器CPU支持四线程,CPU的第2,3,4个线程在CPU空闲的时候是不启用的。
因此,在已获取的物理CPU的第一个线程利用率达100%的时候,如果此时CPU共享池中有空闲的物理CPU,系统将会优先启用被关闭的虚拟CPU,以便获取而外的物理CPU;如果此时CPU共享池中没有可以获取到的物理CPU,那么系统首先不会启用被关闭的虚拟CPU,而是使用已获取的物理CPU的第2个、第3个、和第4个线程,直到整个物理CPU的利用率超过80%,才会启用新的虚拟CPU。
如果一个微分区很繁忙,并且该分区已经获取的物理CPU的数量已经达到该分区设置的期望获取的虚拟CPU的数量,如果条件允许,我们还想给微分区增加物理CPU资源的方法是用DLPAR增加该分区的虚拟CPU的数量,然后该分区会继续获取物理CPU资源。
所以说,对于一个uncapped分区,它能够自动获取到的最多物理CPU资源,是由概要文件中的“期望虚拟处理器数”决定的。
capped分区CPU调度
对于capped分区,虚拟CPU的调度与uncapped是一样的。
不一样的是分区自动可以获取到的最多物理CPU的数量是由概要文件中设置的“期望处理单元数”决定的。
因为,当微分区以小于“期望处理单元数”的物理CPU数量激活以后,即使该分区的CPU利用率很高,并且CPU共享池中的物理CPU很空闲,但是由于概要文件中受限分区的设置,它都无法自动获取额外的CPU资源。
在这种情况下,为了环境分区的CPU紧张的情况,我们可以通过DLPAR,手工给分区增加物理CPU资源,增加后的物理CPU数量不能大于分区的“最大处理单元数”。
并且增加后的物理CPU数量如果超过了虚拟CPU的数量,也是不能添加成功的。
例如,我们有一个微分区,分配的物理CPU为3,虚拟CPU为3:
图4.DLPAR增加CPU
接下来,我们将物理CPU的数量增加到4,会看到如下报错:
图5.DLPAR增加CPU
在这种情况下,就需要同时增加虚拟CPU和物理CPU的数量:
图6.DLPAR增加CPU
可以添加成功。
DLPAR能够增加到的最大物理CPU的数量,是由设置的物理CPU的“最大处理单元数”决定的。
系统中查看微分区CPU相关配置
在微分区中,我们可以使用lpatsta–i命令准确地查看分区CPU和内存的相关配置信息。
点击查看代码清单
我们也可以通过登陆HMC查看对应项的数值。
图7.查看服务器CPU配置
查看分区的概要文件:
图8.查看分区概要文件
所以,针对本案例,通过上面lpatstat-i的输出,我们可以得到几
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- POWERVM下 CPU 利用率的监控 POWERVM 利用率 监控
![提示](https://static.bdocx.com/images/bang_tan.gif)