Windows Server 2012 R2 Hyper-V 02之基于虚拟机CPU资源调整性能测试01

CPU资源的控制是优化整合虚拟化平台性能的一个重要因素。

了解Hyper-V的CPU使用率

当运行在Hyper-V虚拟服务器,确定有多少CPU实际使用时,往往会比较混乱。典型的第一种方法是登录到Hyper-V主机,打开任务管理器。这里大多数人都惊讶地看到,他们的CPU使用率是最小的,这尽管迹象显示该虚拟机的CPU的100%利用。要想真正了解Hyper-V虚拟和物理CPU使用率,首先要求我们深入到理论一点点。

虚拟CPU的可分配给虚拟机。可用的虚拟处理器的数量受可用的硬件核心的数量来确定。所以,作为一个例子,如果你有一个4插槽服务器,每个处理器有8个内核,这将展示32个逻辑处理器。因此,您将能够最多32个虚拟CPU分配给一个虚拟服务器。每个虚拟CPU的向下映射到一个物理核心。

配置你的虚拟机的处理器

为了理解这一切是如何映射在一起,让我们一起来看看在Hyper-V虚拟机的处理器配置。当我们这里Hyper-V主机本身的CPU是2个,这时候我们给虚拟机分配1个CPU,然后我们限制虚拟机的CPU使用率为50%,这时候我们可以看到下面的占用总系统资源的百分比为25%,那么这个是怎么来的?

2CPU=100% 那么每一个CPU就是50%的使用率。然后我们再限制虚拟机的CPU的使用率为50%,那么就等于实际CPU50%里面的50%,即100*50%/2=25%,这也就是说当你分配给虚拟机1个CPU的时候再限制它的使用率为50%时,它可以用到本身Hyper-V服务器的实际CPU为25%,如下图所示,当我们设置虚拟机限制(百分比):50%时,占总系统资源的百分比:25%,这里我们可以测试一下,是不是如我们所说的一样:

下面我们进行压力测试

这时候我们可以看到虚拟机使用实际服务器的CPU性能为25%

我们通过Hyper_Mon工具可以更加清楚的看到使用情况,这里我们看到Win2012R2-Test03的CPU总使用为50%,这是因为我们限制的是50%,然后TestServer02 Hyper-V主机的CPU总使用为31.28%,其中本身Hyper-V主机开销为5.27%,虚拟机的开销为26.01%,除去Win2012R2-Test04虚拟机的1%不到的使用率后,其实Win2012R2-Test03所占用的使用率即为25%左右。

通过前面的一个测试我们已经大概的了解了CPU的一个使用机制,但是因为在Hyper-V里面CPU的资源控制是比较复杂的,下面我们对资源控制的几个细项进行一下说明:

虚拟处理器的数量:这是核心的数量,虚拟机可以看到并使用。可以指定的最大数量是内核对硬件的最大数目

虚拟机保留(百分比):这是Hyper-V主机保留给虚拟机的CPU资源,比较你总共4个CPU,分配给虚拟机2个CPU,然后保留给这台虚拟机10%的资源,那么实际Hyper-V主机留给它的资源是多少了?100/2=50*10%=5%,实际上Hyper-V主机保留给它的资源就是5%。可能还是有一些朋友不知道这个是怎么算的,这里再解释一下,将4个CPU的资源数量看成100%,那么2个CPU的资源数量就是50%了,再乘以10%的虚拟机保留的即:50*10%=5%。

占总系统资源的百分比:前面在算保留资源的百分比的时候,已经算过了,如果你还是不够了解这个算法,那我们再来说一下另外一种算法:虚拟机分配CPU数/实际CPU数*保留数=占用总系统资源数。前面我们是分配2个CPU给虚拟机,实际Hyper-V主机CPU资源为4个CPU,即2/4*10=5%

虚拟机的限制(百分比):最大能够消耗Hyper-V主机的CPU资源数

占总系统资源的百分比:这个同上算法是一样的。

相对权重:此值用于由处理器调度程序,以确定哪些虚拟机得到更多CPU调用。如果VM具有较高的权重会得到更多的CPU资源比同样规格的虚拟机权重以较低的。它的值必须介于0和10000之间。

当然我们这里还有一个重点没有说到,这些资源分配的优先级问题,即保留CPU、虚拟机限制、相对权重三者之间。这不是一两句话能够说清楚的,下面我们来做一个详细的测试。

Hyper-V主机的环境为:1个CPU,2个CPU核心,即2个逻辑CPU,这样子能够分配给虚拟机的最大处理器数量为:2个。

实验一:

Win2012R2-Test03虚拟机:保留50%,限制:60%,相对权重:100

Win2012R2-Test04虚拟机:保留60%,限制:60%,相对权重:100

如下图所示:

现在我们启动Win2012R2-Test03虚拟机以后,再启动Win2012R2-Test04虚拟机,报如下错误:

总结:之所以出现以上错误,很显然是因为虚拟机的资源不够造成的,两台虚拟机分别占用了Hyper-V主机全部的逻辑CPU数量,而保留CPU资源一个为50%,一台为60%,两台合计110%,已经超出实际数量的100%,这是Hyper-V主机不允许的。即来宾操作系统CPU资源总和不能超过实际Hyper-V主机资源总数。

实验二:

Win2012R2-Test03虚拟机:保留50%,限制60%,权重:100

Win2012R2-Test04虚拟机:保留50%,限制60%,,权重:300

如下图所示:

首先我们对Win2012R2-Test03进行压力测试:

这时候我们可以看到CPU的使用情况为:57%,这与我们分配的限制:60%相差不大,说明限制是起作用的。

通过HyperV_Mon工具我们也可以看到Win2012R2-Test03 CPU的使用情况为57%

下面我们再对Win2012R2-Test04虚拟机同样进行压力测试:

这时候我们可能看到两台虚拟机的CPU使用情况已经达到了一个平衡的状态。

通过HyperV_Mon工具,我们也可以看到两个虚拟机的CPU使用率相差不大,这时候我们会发现Hyper-V虚拟机的CPU使用已经达到了100%的状态。

这时候我们需要思考一个问题,为什么权重更高的虚拟机,没有得到更多的CPU了?

这是因为我们的保留CPU都是50%,而实际上Hyper-V主机能够给我们的CPU资源数达不到100%,这样子两台虚拟机的CPU资源都能在42%左右,并未能够达到保留CPU资源数,所以这时候权重高也没有用。

结论:实际CPU资源未达保留CPU资源总数,权重设置无效。

本文出自 “东妮学IT” 博客,谢绝转载!

绚丽的民族风情,悠久的历史文化。抛开尘世的纷扰,

Windows Server 2012 R2 Hyper-V 02之基于虚拟机CPU资源调整性能测试01

相关文章:

你感兴趣的文章:

标签云: