CPU利用率异常分析讨论会-虚拟化相关的话题
2017-03-20 09:34
239 查看
(一) PowerVM环境下的CPU监控和分析与物理机环境有哪些差异?
首先:利用率的概念不同。
虚拟化环境下CPU利用率相对于EC(标称计算能力)来说,可以超过100%。
相对于VP(虚拟CPU)来说,永远是<=100%。
相对于运行时获得的物理CPU来说,永远是<=100%。
CPU利用率的统计方法
第二:虚拟化环境关注的参数更多,这些参数会对性能产生巨大的影响
虚拟化环境需同时关注以下参数
CPU核数
标称计算能力(Entitled Capacity,简称EC)
虚拟CPU(Virtual CPU,简称VP)
逻辑CPU个数(Logical CPU)
SMT
有上限/无上限(Capped/Uncapped)
型号/时钟频率
处理器折叠(Processor Folding)
运行时物理CPU(Physical CPU)
可以参考我之前的文章
性能指标之资源指标 CPU配置参数对性能的影响
PowerVM虚拟化下的核心交易系统性能保持
(二) 开发的应用在CPU核数一样的虚拟服务器上性能表现出较大的差异
1、用的是什么虚拟服务器?VMware还是PowerVM的?还是其他的平台?
2、假如是VMware,用的是ESX/vSphere还是VMware Workstation,二者架构不同,性能不同,PC上的VMware Workstation不是裸金属模式,性能不好。
3、虚拟机上看到的核数,可能不是真正的核数。比如说VMware上,看到的2个core,其实是x86 CPU的一个core中的一个超线程。
如果这个x86 CPU一个core是两个线程,那么虚拟机中的两个core只相当于物理的一个core。当然,这是你能够完全抢占的情况下。如果没有完全抢占,那就更小了。
如果是PowerVM的虚拟机,操作系统看到的核数是VP(虚拟CPU),至于这个LPAR运行时候,能得到多少物理CPU以及这些物理CPU的亲和性,可能差异很大。
PowerVM上CPU的概念可以参考我的文章
性能指标之资源指标 CPU配置参数对性能的影响
(三) 虚拟化下CPU核数超分配有没有最佳实践
问题:在虚拟化的环境下,一般可以超分配CPU核数。一般会有一个临界值。过了这个值CPU性能就大幅下滑。我们如何找这个值,有没有什么最佳实践?
所谓的“最佳实践”其实是厂商给出通用值,具体到你的单位头上,并不一定是最佳的。世界上没有所谓的通用的最佳。就好比,两地三中心、异地双活之类的设计方案,没有什么最佳实践,每个企业都有根据自己的特点来设计。
回到你的问题,如果你的系统追求最短的响应时间(核心交易系统),VP和EC的比值越小越好。如果,追求最大瞬时CPU获得,设置大一些更好,最大可以是10,适用于平时没有什么业务量的非核心系统。
(四) EC高低似乎对业务响应时间没什么影响,为什么?
问题1:
解答1
这个是需要运气的。
是否做上下文切换,取决于进程是不是每次被调用到同一个VP上,VP是不是每次被调用到同一个物理CPU上。
如果你的资源池,资源比较充足,那么hypervisor按照亲和性调度,你的VP每次得到的物理CPU是一样的,所以响应时间不受影响
反之,资源紧张,多个LPAR争抢,亲和性大打折扣,响应时间就起伏很大。
亲和性的数值,可以通过下面方式查询
Nmon的BBBP sheet
命令行Mpstat –d
问题2
"那么如果要看运气的话,物理资源多少才算闲置,总利用率多少需要开始关注CPU亲和度了,需要开始着手处理此类问题了"
解答2
首先要理解亲和度的概念,是CPU是否能从cache1、2、3里面读到数据。举个例子,有1000个进程跑在一个CPU上,但都是不怎么干活的进程,一会儿进程A上来占用,一会进程B上来占用,但总体CPU利用率并不高,但每个进程上来后都要有自己的进程上下文。可能此时cache1、2、3根本缓存不了这么多上下文。结果就是大量的上下文切换。
因此不会有一个绝对的指标,说物理资源多少才开始关注CPU亲和度。
针对 “物理机的整体CPU利用率究竟达到多少时,需要考虑扩大LPAR的EC”
是否扩大LPAR的EC,主要考虑的是你的业务需求是否能够得到满足(例如,响应时间是否满足要求,吞吐量是否跟得上),而不是主要考虑物理机的整体CPU利用率。
首先:利用率的概念不同。
虚拟化环境下CPU利用率相对于EC(标称计算能力)来说,可以超过100%。
相对于VP(虚拟CPU)来说,永远是<=100%。
相对于运行时获得的物理CPU来说,永远是<=100%。
CPU利用率的统计方法
第二:虚拟化环境关注的参数更多,这些参数会对性能产生巨大的影响
虚拟化环境需同时关注以下参数
CPU核数
标称计算能力(Entitled Capacity,简称EC)
虚拟CPU(Virtual CPU,简称VP)
逻辑CPU个数(Logical CPU)
SMT
有上限/无上限(Capped/Uncapped)
型号/时钟频率
处理器折叠(Processor Folding)
运行时物理CPU(Physical CPU)
可以参考我之前的文章
性能指标之资源指标 CPU配置参数对性能的影响
PowerVM虚拟化下的核心交易系统性能保持
(二) 开发的应用在CPU核数一样的虚拟服务器上性能表现出较大的差异
1、用的是什么虚拟服务器?VMware还是PowerVM的?还是其他的平台?
2、假如是VMware,用的是ESX/vSphere还是VMware Workstation,二者架构不同,性能不同,PC上的VMware Workstation不是裸金属模式,性能不好。
3、虚拟机上看到的核数,可能不是真正的核数。比如说VMware上,看到的2个core,其实是x86 CPU的一个core中的一个超线程。
如果这个x86 CPU一个core是两个线程,那么虚拟机中的两个core只相当于物理的一个core。当然,这是你能够完全抢占的情况下。如果没有完全抢占,那就更小了。
如果是PowerVM的虚拟机,操作系统看到的核数是VP(虚拟CPU),至于这个LPAR运行时候,能得到多少物理CPU以及这些物理CPU的亲和性,可能差异很大。
PowerVM上CPU的概念可以参考我的文章
性能指标之资源指标 CPU配置参数对性能的影响
(三) 虚拟化下CPU核数超分配有没有最佳实践
问题:在虚拟化的环境下,一般可以超分配CPU核数。一般会有一个临界值。过了这个值CPU性能就大幅下滑。我们如何找这个值,有没有什么最佳实践?
所谓的“最佳实践”其实是厂商给出通用值,具体到你的单位头上,并不一定是最佳的。世界上没有所谓的通用的最佳。就好比,两地三中心、异地双活之类的设计方案,没有什么最佳实践,每个企业都有根据自己的特点来设计。
回到你的问题,如果你的系统追求最短的响应时间(核心交易系统),VP和EC的比值越小越好。如果,追求最大瞬时CPU获得,设置大一些更好,最大可以是10,适用于平时没有什么业务量的非核心系统。
(四) EC高低似乎对业务响应时间没什么影响,为什么?
问题1:
解答1
这个是需要运气的。
是否做上下文切换,取决于进程是不是每次被调用到同一个VP上,VP是不是每次被调用到同一个物理CPU上。
如果你的资源池,资源比较充足,那么hypervisor按照亲和性调度,你的VP每次得到的物理CPU是一样的,所以响应时间不受影响
反之,资源紧张,多个LPAR争抢,亲和性大打折扣,响应时间就起伏很大。
亲和性的数值,可以通过下面方式查询
Nmon的BBBP sheet
命令行Mpstat –d
问题2
"那么如果要看运气的话,物理资源多少才算闲置,总利用率多少需要开始关注CPU亲和度了,需要开始着手处理此类问题了"
解答2
首先要理解亲和度的概念,是CPU是否能从cache1、2、3里面读到数据。举个例子,有1000个进程跑在一个CPU上,但都是不怎么干活的进程,一会儿进程A上来占用,一会进程B上来占用,但总体CPU利用率并不高,但每个进程上来后都要有自己的进程上下文。可能此时cache1、2、3根本缓存不了这么多上下文。结果就是大量的上下文切换。
因此不会有一个绝对的指标,说物理资源多少才开始关注CPU亲和度。
针对 “物理机的整体CPU利用率究竟达到多少时,需要考虑扩大LPAR的EC”
是否扩大LPAR的EC,主要考虑的是你的业务需求是否能够得到满足(例如,响应时间是否满足要求,吞吐量是否跟得上),而不是主要考虑物理机的整体CPU利用率。
相关文章推荐
- CPU利用率异常分析讨论会-问题诊断思路
- CPU利用率异常分析讨论会-问题诊断思路
- CPU利用率异常分析讨论会-基本概念类问题
- CPU利用率异常分析讨论会-基本概念类问题
- 异常等待事件Resmgr:Cpu Quantum导致CPU利用率高
- oracle 一次诊断和解决CPU利用率高的问题分析
- Tomcat CPU占用100%异常分析与处理
- Android开发中Crash异常收集与统计分析(一、Java语法相关异常)
- cpu利用率过高,内存溢出分析
- QT_openCV2.4.9或相关版本编译正常,运行时提示“程序异常结束”问题分析
- Erlang CPU 高相关问题的分析方法
- 一次诊断和解决CPU利用率高的问题分析
- 在PowerVM虚拟化环境下,微分区CPU利用率的监控方法
- 分析程序cpu利用率、内存利用率的工具
- crontab导致CPU异常的问题分析及处理
- 2.5 cpu虚拟化情景分析
- 如何分析CPU的瓶颈和相关操作
- 性能分析_linux服务器CPU_CPU利用率
- 项目CPU异常高分析
- Eclipse相关错误导致web项目发布异常问题原因分析及解决方案