您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 其它行业文档 > ESXi性能系列之二 虚拟机CPU优化指南
©2014VMwareInc.Allrightsreserved.ESXi性能系列之二虚拟机CPU优化指南万翀VMware大中华区三线技术支持2014.11.27前言CONFIDENTIAL2应用操作系统(GuestOS+Tools)虚拟机(VMX/VMM)Hypervisorvmkernel硬件CONFIDENTIAL3应用操作系统(GuestOS+Tools)虚拟机(VMX/VMM)Hypervisorvmkernel硬件•处理器•内存Network•网络Storage•存储前言CONFIDENTIAL44分析工具EsxtopvmkstatsvProbevscsistatsvstracetop,free,netstat,iostat,vmstat,systemtap,oprofileLog,sed,awk,grep,rrdPerfmonHALPowerPolicyC-stat,P-statx2apicclockddSuper_piiperf应用操作系统(GuestOS+Tools)虚拟机(VMX/VMM)Hypervisorvmkernel硬件•处理器•内存前言CONFIDENTIAL5BIOSvmkernelVMguestOSCPU性能优化议题内存性能调试网络性能调试存储性能调试硬件优化电源模式pCPU虚拟化开关x2apic硬件优化#1CONFIDENTIAL7BIOS中打开CPU虚拟化技术选项•IntelVT-X•AMDAMD-VCPU的虚拟化技术直接影响虚拟机指令执行模块VMM的执行性能硬件优化#2CONFIDENTIAL8电源模式选项•关闭节电•高性能策略•OSControl模式节电使物理CPU在低频下运行虚拟机,对虚拟机内的操作系统透明CONFIDENTIAL9硬件优化#2’硬件优化#3CONFIDENTIAL10x2APICAuto/enablewikipedia://硬件优化-参考资料知识库文章:处理器电源管理设置导致虚拟机应用性能问题Poorvirtualmachineapplicationperformancemaybecausedbyprocessorpowermanagementsettings(1018206)技术白皮书之性能学习:ESXi5.1及ESXi5.5电源管理与性能官方博客:ESXi5.1电源管理与性能测试对比关键指标CPUPool就绪时间Ready利用率Used&Run同步时间cstop资源限制MLimit绑定Affinity资源池限制LAT_CCONFIDENTIAL13Vmkernel-CPU指标#1(CPU利用率)•CPU利用率计算方法有两种,根据时间和根据频率来计算使用情况。如果没有打开CPU超线程技术,只会显示PCPUUSED和PCPUUTIL。在这种情况下,红蓝色方框针对一个虚拟机的值基本一样,或者相差甚少。如果开启了超线程,会多显示COREUTIL记录,即黄色方框部分,这时红蓝方框的值大约相差一倍。如果红色方框的值相差很多,比如蓝色方框的对比相差约8倍,说明物理CPU在节电模式下运行,导致虚拟机性能慢。配置电源管理交由ESXi控制。CONFIDENTIAL14•下面这幅图是没有开启超线程的情景,PCPUUSED和PCPUUTIL相差1倍,说明主机在BIOS级别有开启CPU节电功能。虚拟机开机启动会比较慢。Vmkernel-CPU指标#1’(CPU利用率)CONFIDENTIAL15•虚拟机vCPU就绪时间(%RDY)反映了vmkernel是否能够及时调度虚拟机到物理CPU上。如果vmkernel需要较长时间完成该调度工作,则虚拟机在相同时间里获得物理CPU的机会就会减少,虚拟机性能会受到明显影响。如果虚拟机vCPU数量多,vmkernel调度该虚拟机的难度就会加大,因为必须在同一时刻有和vCPU相同数量的物理CPU空闲该虚拟机才能被调度成功。•图例显示物理CPU利用率较高,多台虚拟机RDY值较高(10),说明主机负荷较重,虚拟机之间存在CPU竞争。迁移部分虚拟机是快速简单而又有效的方法。Vmkernel-CPU指标#2(CPU就绪时间)CONFIDENTIAL16Vmkernel-CPU指标#3(CPU同步时间)•虚拟机vCPU同步停止时间(%CSTP)是虚拟机在多处理器环境下需要处理器的速度一样。如果某个CPU速度快了,该CPU需要跑慢点等待运行速度慢的CPU跟上。CSTP反映虚拟机内部vCPU之间的速度一致性,或者内部竞争关系。如果同步停止时间长,虚拟机vCPU速度会变慢从而带来性能问题。•如果该值较高,说明该虚拟机有可能不需要这么多vCPU,也有可能说明有的vCPU在处理等待慢速IO操作结束,比如磁盘读写。•由于虚拟机快照对vmdk文件访问的特殊性,有可能造成CSTP值偏高而导致虚拟机性能问题。CONFIDENTIAL17VMkernel-CPU指标#4(资源限制)•如果设置了vCPU资源限制不适当,也会导致虚拟机性能低。•图例中该虚拟机仅仅分配了10MHz的CPU频率。CONFIDENTIAL18VMkernel-CPU指标#4’(资源限制)•该虚拟机CPU利用率低,但Ready时间高,说明该虚拟机被调度到物理虚拟机的机会少;而不管主机的物理CPU利用率还是虚拟机的CPU利用率都低说明不是由CPU计算资源竞争或者过度消耗造成。MLMTD的值高并导致了Ready值高,说明该虚拟机是由于资源限制的配置不当造成的。VMkernel-CPU指标#4’(资源限制续)CONFIDENTIAL20Vmkernel-CPU指标#5(资源池限制)CONFIDENTIAL21Vmkernel-CPU指标#6(绑定-Affinity)虚拟机配置虚拟机调度VMM选项滞后时间敏感CONFIDENTIAL23虚拟机配置#1(VMM选项)•使用不同类型的虚拟化技术,对虚拟机性能影响很大•BT软件虚拟化对Java类型的应用支持较好•硬件虚拟化适用于大多数的情况使用BT:CPU使用软件虚拟化技术,内存使用软件虚拟化技术CPU使用硬件虚拟化技术,内存使用软件虚拟化技术CPU使用硬件虚拟化技术,内存使用硬件虚拟化技术自动选择指令和寻址的VMM,通常都是使用硬件虚拟化技术CONFIDENTIAL24虚拟机配置#1’(VMM配置记录)•如果使用默认自动选择VMM,可以打开虚拟机目录下的vmware.log文件来确定实际使用的是硬件虚拟机还是软件虚拟化。使用vi命令打开该日志文件。查找关键字“HVSettings”。下面红色部分显示该虚拟机运行态实际使用的虚拟化技术是硬件;黄色部分显示该物理CPU以及客户机操作系统能够支持的虚拟化技术。BT是使用软件翻译指令和寻址,HV是硬件翻译指令,HWMMU是采用硬件寻址。CONFIDENTIAL25虚拟机配置#1”(VMM实际记录)查找关键字“HVSettings”。下面红色部分显示该虚拟机运行态实际使用的虚拟化技术是BT,即软件虚拟化;该虚拟机加电装载的配置文件也显示使用了软件方式翻译指令和寻址CONFIDENTIAL26虚拟机配置#2(调度参数1)•Vmx:monitor_control.halt_desched=FALSE手工添加该参数到虚拟机配置文件vmx里。启动虚拟机后,虚拟机将独占已经绑定的物理CPU,及时虚拟机处于idle状态也不会被置换出物理CPU,从而保证虚拟机的CPU计算资源。该参数用于测试、调优排查等场景,不用于生产环境。使用参数后在esxtop里虚拟机占用CPU会一直处于高位,是正常预期。旧版本ESXi也可使用参数monitor.idleLoopSpinUS=-1CONFIDENTIAL27虚拟机配置#2’(调度参数2)参考:KB#1018276monitor.idleLoopSpinBeforeHalt白皮书:虚拟机配置#2”(调度参数3-滞后时间敏感)在VMwarevSphere5.5中部署对延迟极度敏感的应用:性能研究PDF高5vmx:sched.cpu.latencySensitivity=highCONFIDENTIAL29虚拟机配置#2”’(调度参数4)客户机操作系统Linux内核配置启动参数idle=poll,Linux操作系统在idle的时候不再向CPU发送HALT指令,而是发送PAUSE指令,这样在唤起CPU的时候速度更快。VMX添加参数:monitor_control.disable_pause_loop_exiting=true该参数可以捕获客户机操作系统Linux发出的PAUSE指令并识别后仍然让该虚拟机绑定在物理CPU上运行。虚拟化性能数据采集虚拟机统计数据主机性能esxtopCPU性能计数器vPMCESXi基本性能收集KB:Collectingperformancesnapshotsusingvm-support(1967)KB:CollectingperformancedataforESXi5.xhostsviathevSphereclient(2009124)20s5s虚拟化性能数据采集#1(主机性能数据)注意:须选择主机或者以上对象ESXi基本性能收集虚拟化性能数据采集#1(主机性能数据)CONFIDENTIAL33虚拟机配置#2(虚拟机统计数据GUI)KB:2009512虚拟机配置#2’(虚拟机统计数据CmdLine)命令行操作参考KB:2009512获取虚拟机名称信息#vim-cmdvmsvc/getallvms##2.打开数据收集开关#/bin/vmx-buildtype--vmname=vm-displayname--serverlocalhost--buildTypestats–ssr##3.检查并确认开关状态#head–n1/vmfs/volumes/pathtovm/vmware.log##4.开始压力测试##5.关闭收集开关#/bin/vmx-buildtype--vmname=vm-displayname--serverlocalhost--buildTyperelease--ssr##3.检查并确认开关状态#head–n1/vmfs/volumes/pathtovm/vmware.logCONFIDENTIAL35虚拟机配置#2”(虚拟机统计数据分析)举例分析:配置2颗vCPU的虚拟机运行Sup
本文标题:ESXi性能系列之二 虚拟机CPU优化指南
链接地址:https://www.777doc.com/doc-3562273 .html