详解 AIX CPU 折叠功能
本文介绍了处理器折叠技术的作用及对系统的影响。
来自社区“平台人生”专栏:http://www.talkwithtrend.com/Column/detail/id/11
原题:Power AIX CPU 折叠功能介绍
1.CPU折叠功能介绍
虚拟处理器管理(VirtualProcessorManagement),也称之为处理器折叠技术(CPUFolding),是一项Power虚拟化特性,用于控制一个LPAR处理使用的VP(VirtualProcessor)数量。按目前AIX的设置,默认对微分区(即共享处理器分区)开启了处理器折叠功能;而专有处理器分区(dedicatedLPAR)则默认关闭此功能。
处理器折叠技术的作用主要体现在两个方面:
1)节能,如果一个物理核心对应的所有VP都处于被折叠状态,PowerVMhypervisor可以将这颗核心置于低能耗状态。
2)提高整体处理效率,特别是在EC:VP配比较低的环境,比如1:10或以上(在新一代power资源池中,EC:VP=1:2),如果直接将十多倍的VP调度到每个物理核心(PhysicalProcessor,PP)上,将造成一定的调度开销;因此通过折叠不必要的VP,可以有效降低hypervisor的无谓开销,提高整体效率。
这个特性在两种场景都有帮助:
1)LPAR CPU使用率不高,多数VP空闲;通过减少VP数量,可以有效提高每个VP对应的物理核心份额(即physc,可以通过mpstat/sar–PALL等查看每个核心的pc/physc值);从而可以有效减少hypervisor以及操作系统的调度开销。比如如果分区只能实际消耗掉16颗物理核心(lparstat显示physc=16),但设置的VP数为64,如果系统能只使用16个VP来调度作业,则VP被调度到物理核心时是1:1的方式(接近Dedicated模式),hypervisor调度效率比较高,亲和度一般也更优;而与此相比,如果系统直接使用64个VP来调度作业,则VP被调度到物理核心时是4:1的方式,效率以及亲和度一般会略低。
2)处理器池(processorpool)中处理器资源紧张,LPAR开始争抢CPU资源;VP数量实际上定义了LPAR能争抢到的物理核心的上限;但并非每个分区都总是能抢到上限值,尤其是在EC:VP配比较低的环境下。在处理器资源竞争激烈时,分区能得到的总处理器资源可能会受到限制,此时减少分区的VP数量也有整体调度上的好处。比如一个8VP的分区,如果只能得到2.0颗物理核心(physc=2.0),那么如果激活的VP数减少到4的话(相当于每个VP平均能拿到0.5physicalcore),性能一般比VP为8时要更优(相当于每个VP平均能拿到0.25physicalcore)。
2.AIX CPU 折叠算法以及实验
每一秒,AIX操作系统监控本分区的总体VP利用率,如果总体VP利用率低于vpm_fold_threshold(AIX6.1TL6以后默认为49%;可通过schedo命令确认),AIX将启用折叠功能,开始向下折叠VP,使负载运行在较少的VP上。注意被折叠的VP在系统中仍然存在,只是系统不再往这些被折叠的VP调度作业线程了。而如果总利用率超出vpm_fold_threshold, AIX将开始展开VP使用更多的VP来调度负载。用户可以通过控制参数来选择是否打开folding策略;还可以通过schedo的vpm_xvcpus选项来设置保底激活的VP数量。
2.1 VPM控制参数说明
Folding策略开关由schedo的vpm_fold_policy选项控制。
1) 设置vpm_xvcpus = -1, vpm_fold_policy会自动被设置为0,这样会关闭folding功能。但如果此时分区开启了静态节能模式(StaticPowerSaving),则系统会自动设置vpm_fold_policy为3打开folding功能;还有一个影响Folding策略开关的参数vpm_xvcpus, 它的作用是控制当微分区CPU不足的时候,系统可以自动启动的微分区的数量。
2) 设置vpm_xvcpus = 0,表示启用了CPU折叠功能(ProcessorFolding),虚拟处理器正接受管理;
3) 设置vpm_xvcpus大于1,CPU折叠功能打开,并且开启的虚拟CPU数目为物理CPU使用数与vpm_xvcpus参数之和。即:
number=ceiling(p_util+vpm_xvcpus);
其中number是所需的虚拟处理器数,p_util是物理处理器使用情况。如果number小于当前已启用的虚拟处理器数,那么将禁用某个虚拟处理器。如果number大于当前已启用的虚拟处理器数,将启用已禁用的虚拟处理器。在vpm_xvcpus大于1的情况下,也表示保底激活的CPU数。连接到已禁用的虚拟处理器的线程仍然可以在已禁用的虚拟处理器上运行 。
说明:
1) StaticPowerSaverMode:静态节能模式是当系统CPU工作负载低的时候,系统把物理CPU主频和电压降低到一个固定值,以达到节能目的。一般关注性能的系统不建议采用此设置。
2) DynamicPowerSaverMode:动态节能模式是系统根据CPU负载大小,实时调整物理CPU主频和电压(不是固定值),以达到节能目的。
3) 系统缺省设置以上两种节能模式都是关闭的,可以通过HMC/ASMI设置。
2.2 AIX CPU折叠实验
开启一个ncpu任务给系统增加CPU负载,启动16个进程,每个50%时间繁忙,这样大约需要占用8颗物理core。
微分区环境下,关闭处理器折叠时的表现:
微分区环境下,打开处理器折叠时的表现:
通过kdb命令也可以查看到VP的折叠现象,下图中标识“DIS”的即为折叠状态的逻辑CPU.
可见:
1) 从lparstat可以看到,无论folding打开或者关闭,physc大约为8.00左右;
2) 从mpstat -s的输出可知,同样的场景下(8个任务50%繁忙),启动cpu folding时,只需要9颗VCPU;而关闭cpu folding时,所有16颗VCPU都被启动了;
3.CPU 折叠功能对系统的影响
3.1 关闭CPU folding的影响:
关闭了系统内核对微分区环境的自动调度优化;所有的VP都会被调度到hypervisor,不管这些VP上是否有实际负载;更高的hypervisor延时,物理资源亲和度也可能受到影响。
3.2 关闭CPU folding的好处:
对于分区sizing非常完美的情形下,比如EC:VP始终控制在不低于1:2,而且处理器池资源从未受限,这时关闭folding可能获得一定的性能收益(主要是通过减少VPM管理开销,以及避免unfold展开CPU延迟)
AIX小技巧:
AIX 删除 failed path
lspath -F "status name path_id parent conection" | grep -w hdisk12
Failed hdisk12 5 fscsi1 500b34200f80ce01,4000000000000
rmpath –dl hdisk12 –p fscsi1 –w 500b34200f80ce01,4000000000000
(社区会员孙伟光分享)
AIX下ftp上传下载的小脚本
以前备份手段有限。没有专门的备份设备,当时为了备份AIX下的文件。就找了这个东西。自动把本地文件打包,然后上传到我的FTP服务器上实现异机的自动备份。比较简单,分享一下。同样也适用于LINUX。
下载脚本:
ftp -v -n *.*.*.*<<EOF
user oracle 123456
binary
cd /home/data
lcd /home/databackup
prompt
mget *
close
bye
EOF
上传脚本:
tar -cvf /soft/xt/`date +%Y%m%d`ftp.tar /OAWEB/webapp/ >/soft/xt/tar.log
ftp -v -n *。*。*。* << EOF
user pys 12345678
binary
hash
cd /10.10.8.71
lcd /soft/xt/
prompt
mput *ftp.tar
bye
EOF >/soft/xt/ftp.l
(社区会员pysx0503分享)
AIX 修改主机名
修改主机名暂时生效:
hostname NEW_HOSTNAME
永久生效 smit hostname
或 者 smit tcpip - futher configureation - hostname -set the hostname
uname -S hostname
或者直接用命令 chdev -l inet0 -a hostname=NEW_HOSTNAME
正 确 更 改 IP 地 址 是 用 smit tcpip 进 入 菜 单 之 后, 选 择 furtherconfiguration 再选 Network Interfaces,再选 Network Interface Selection.
再选 Change /show characteristic of a network interface 来更改 IP,这样 /etc/hosts 就不会新加入一条记录,只需更改文件中相应的 IP 就行了。
install_assist
生产环境实际操作过程 :
进入修复 session,(single session 模式)
修改主机的名字
或者 smit tcpip - futher configureation - hostname -set the hostname
修改网卡的 ip 地址
smitty mktcpip ,选择 en6
修改其 ip 地址
最后确认 /etc/hosts 中数据是一致的。
解决AIX系统默认语言改变后FTP无法登陆
AIX系统默认语言环境为en_US,SI的工程师把语言环境修改成zh_CN后 发现使用xshell、FlashFXPP等FTP工具都无法登陆,修改回en_US后FTP使用正常。一般把AIX系统默认语言环境由英文修改为中文后经常会碰到乱码等一系列问题,所以一般都是默认用en_US,把zh_CN包安装上就行。 但SI要求默认语言环境必须用zh_CN,后来想到一个办法,只将inetd子系统改成en_US环境。
1、将SetenvForFTP.sh上传到/usr/目录下,赋予执行权限:
chmod 755 /usr/SetenvForFTP.sh
2、后台执行:
# nohup /usr/SetenvForFTP.sh &
3、执行完成后登陆FTP,检查验证。
SetenvForFTP.sh文件内容:
#!/usr/bin/ksh
#
############################################################
# Script name : SetenvForFTP.sh
# Purpose : Script for inetd Subsystem set envrionment
# to en_US.
#当AIX系统使用中文语言环境时,有时会碰到FTP乱码或登录不上去
#等问题,本SHELL实现ineted子系统,在启动时使用英文语言环境。
#
# Author : BQHe
# : 277542401@qq.com
#
#1、将SetenvForFTP.sh上传到/usr/目录下,赋予执行权限:
# chmod 755 /usr/SetenvForFTP.sh
#2、后台执行:
# nohup /usr/SetenvForFTP.sh &
############################################################
#
############################################################
#当AIX系统使用中文语言环境时,有时会碰到FTP乱码或登录不上 #
#去等问题,本脚本实现ineted子系统在启动时使用英文语言环境。#
############################################################
#
stopsrc -s inetd
startsrc -e LANG=en_US -s inetd
#
############################################################
#第二步:实现开机启动,在 /etc/inittab文件最后一行添加: #
#SetenvForFTP:2:once:/usr/SetenvForFTP.sh > /dev/null #
############################################################
cp -p /etc/inittab /etc/inittab.bak
echo "SetenvForFTP:2:once:/usr/SetenvForFTP.sh > /dev/null" >> /etc/inittab
(社区会员 BQHe 分享)
更多相关文章,请点击阅读原文
长按二维码关注公众号