限定虚拟机可用的CPU利用率

简介:

Windows Server 2012姗姗来迟,最新的Hyper-V 3给我们带来更多的惊喜,后续三篇博文和大家龚广通学习虚拟机CPU竞争机制。

第一部分:分配给虚拟机的CPU资源

第二部分:限定虚拟机可用的CPU利用率

第三部分:争夺CPU资源优先级

 

第二部分 限定虚拟机可用的CPU利用率

虚拟机可用的处理器资源(全部资源为100%),可以指定虚拟机使用的CPU资源(使用百分比表示),也就是说可以限制虚拟机使用的CPU资源。

虚拟机属性设置中提供“虚拟机限制”选项,此设置保证虚拟机可以使用的最大CPU处理能力。虚拟机使用的CPU资源超出限制值,则使用CPU最高值为设置值(百分比)。

默认设置

创建新虚拟机后,默认为每个虚拟机限制百分比为“100”,即每个虚拟机都可以使用最大的CPU处理能力。

默认设置有一个致命的缺陷,当多个虚拟机同时运行,虚拟机使用的CPU利用率都达到100%时,系统将停止响应以至于宕机。对应用来说,这是一个致命的缺陷。因此,限制虚拟机的最大处理能力将是一种好方法。

clip_image002

虚拟机CPU资源使用测试

例如在同一台宿主机中:

l 虚拟机(Windows Server 2008 R2)设置的虚拟机限制(百分比)为50%,则该虚拟机最多可以使用CPU的处理器数据处理能力的50%。

clip_image004

l 虚拟机(Windows Server 2003 R2)设置的虚拟机限制(百分比)为30%(如图2-16所示),则该虚拟机最多可以使用CPU的处理器数据处理能力的30%。

clip_image006

名称为“Windows Server 2003 R2”的虚拟机启动后,由于应用系统需要较高的CPU处理资源,通过“任务管理器”中的“性能”选项卡,可以大致看到CPU使用率99%以上。

clip_image008

该“虚拟机限制”设置30%,也就是说该虚拟机可以使用的硬件CPU最高资源是30%,虽然虚拟机提示CPU利用率接近100%,但是物理CPU的利用率是多少呢?

打开“Hyper-V 管理器”,可以看到该虚拟机的CPU使用率,CPU使用率为29%,接近30%,达到为虚拟机分配的CPU资源的最大使用率,如图所示。

这样当其他虚拟机处于运行状态时,不会因为某个虚拟机占用大量CPU资源而无法响应客户端请求。

clip_image010

通过Windows 8 Server“任务管理器”中的“性能”选项卡,也可以清楚显示物理CPU的利用率,大致在30%左右,而非虚拟机显示的利用率100%。

clip_image012

CPU限制机制

当宿主机中具备一定数量的虚拟机时,建议通过基准测试计算出每个虚拟机应用占用的最大CPU利用率,然后通过“虚拟机限制”选项为每个虚拟机指派限制值。

这样即便有多个虚拟机达到应用峰值,也不会影响其他虚拟机处理能力,确保系统平稳运行。
















本文转自wangshujiang51CTO博客,原文链接: http://blog.51cto.com/wangshujiang/936262,如需转载请自行联系原作者

相关文章
|
2月前
|
消息中间件 SQL Kafka
Flink CPU问题之CPU利用率低如何解决
Apache Flink是由Apache软件基金会开发的开源流处理框架,其核心是用Java和Scala编写的分布式流数据流引擎。本合集提供有关Apache Flink相关技术、使用技巧和最佳实践的资源。
|
17天前
|
Prometheus 监控 Cloud Native
grafana展示的CPU利用率与实际不符的问题探究
观察到`mpstat`命令显示单核CPU的`%usr`和`%sys`分别持续在70%和20%,而Grafana监控数据显示较低。问题源于Grafana表达式计算的是CPU时间增量而非利用率。`mpstat`通过`/proc/stat`获取数据并计算CPU利用率,而`node-exporter`直接导出原始数据。调整Grafana表达式以匹配`mpstat`的计算方式后,两者结果一致。解决方案是修正Grafana查询以准确反映CPU占用率。
64 1
grafana展示的CPU利用率与实际不符的问题探究
|
5天前
|
监控 算法 Java
聊聊性能指标CPU利用率如何计算的
**摘要:** CPU 利用率衡量了CPU被程序占用的程度,反映了一段时间内CPU忙碌的程度。在多任务操作系统中,CPU通过时间片分配给各进程实现“并发”。Linux命令如`uptime`、`top`、`w`和`vmstat`可用来监控CPU利用率。`vmstat`中的`%us`、`%sy`、`%id`等指标揭示了不同状态的CPU使用情况。`top`命令则实时显示进程资源占用。CPU利用率过高可能表明系统负载过大或程序问题,需要优化。Java应用中,CPU飙高可能由内存泄漏或死循环引起,需使用jstack等工具排查。
|
18天前
|
Python
python3获取内存和cpu利用率记录日志文件psutil
python3获取内存和cpu利用率记录日志文件psutil
17 1
|
5天前
|
虚拟化 iOS开发 MacOS
客户机操作系统已禁用 CPU。请关闭或重置虚拟机。解决方法
客户机操作系统已禁用 CPU。请关闭或重置虚拟机。解决方法
8 0
|
2月前
|
存储 弹性计算 运维
|
2月前
|
存储 弹性计算 运维
|
2月前
|
监控 Shell
Shell脚本监控CPU、内存和硬盘利用率
Shell脚本监控CPU、内存和硬盘利用率
|
9月前
|
安全 虚拟化
VMWare 虚拟机 CPU 设置里针对 CPU 的 Intel VT-x 选项功能介绍
VMWare 虚拟机 CPU 设置里针对 CPU 的 Intel VT-x 选项功能介绍
|
2月前
|
Linux
Linux rsyslog占用内存CPU过高解决办法
该文档描述了`rsyslog`占用内存过高的问题及其解决方案。
96 4