vSphere正确分配虚拟机CPU资源

在VMware vSphere环境下,如果虚拟机系统的硬件资源配置不当,会对系统性能造成很大影响。如图所示,这里说的硬件资源配置主要包括CPU、内存、硬盘、网络适配器等。本文结合笔者亲身体会,分析如何正确的分配CPU资源。

一、CPU资源说明

VMware vSphere为虚拟机分配的CPU数是指逻辑处理器数。每台主机(服务器)拥有的逻辑处理器总数是不一样的,为物理CPU数量×每CPU的核(Core)数×超线程因子,当硬件支持超线程且在BIOS中开启超线程时,超线程因子为2,否则为1。例如某服务器为4C 8核并且支持超线程时,其CPU内核只有4×8=32个,插槽数即CPU数=4,vSphere可分配的该主机逻辑处理器数为4×8×2=64。如图所示:

主机4C  4核不支持超线程的示例如下:

主机2C 6核不支持超线程的示例如下:

二、CPU资源分配

vSphere给虚拟机分配的逻辑CPU数等于插槽数×每插槽的内核数,其中插槽数不能直接设置,可通过调整另两个数量来间接设置。如分配4个逻辑CPU给某虚拟机时,可以设置每个插槽的内核数为1,则插槽数自动设为4;如内核数为2,则插槽数为2;如内核数为4,则插槽数为1。

分配原则1  插槽数不能超过主机的CPU数,否则多余的插槽数是无效的。

分配原则2  每个插槽的内核数不能超过每CPU的内核数×超线程因子。

在vSphere中,一旦违反以上两个原则之一,为虚拟机分配的实际CPU数将少于显示的CPU数。同时,在进行虚拟机vMotion时,也要考虑目的主机的硬件资源配置情况。

如上图,系统分配了4个CPU,1个插槽,实际上系统只能在一个物理CPU上运行,不利于系统运行大并发任务。

曾经遇到过一个类似情况,分配的CPU数为8,但每个插槽的内核数为8,插槽数为1,系统启动都很正常,但跑数据库应用时查询响应非常慢,用户不可接受。后经过优化,CPU总数8保持不变,但调整每个插槽的内核数为2,插槽数为4,性能明显好转,查询响应很快。

另:强烈建议选择“启用CPU热添加”,这样,当虚拟机因CPU计算资源不足时可以在线手动添加CPU数量而无需停机。如没选择该项,如欲增加CPU数,则只能先将虚拟机系统停机后手动添加。

结束语

在vSphere环境下为虚拟机配置CPU资源时,要充分考虑主机硬件CPU资源配置情况,同时结合虚拟机系统应用需求,合理分配CPU资源,做到既保证计算需求,又不浪费计算资源。

时间: 2024-11-21 05:46:28

vSphere正确分配虚拟机CPU资源的相关文章

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

实验六: Win2012R2-Test03虚拟机:保留40%,限制100%,权重:100 Win2012R2-Test04虚拟机:保留0%,限制100%,权重:1000 如下图所示: 同时对两台虚拟机进行压力测试如下图所示: 通过HyperV_Mon查看: 这时候我们可以看到Win2012R2-Test04的CPU使用率要比Win2012R2-Test03的CPU使用率要高,也就是说这个权重在这里是会启作用了.如是当权重比较底的时候,它的作用不够明显无法查看出来. 通过这一系列的关于CPU的实验

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

实验三: Win2012R2-Test03虚拟机:保留0%,限制60%,权重:100 Win2012R2-Test04虚拟机:保留0%,限制60%,权重:300 如下图所示: 同时进行压力测试两台虚拟机的CPU使用资源情况如下所示: 通过HyperV_Mon查看如下: 这里我们可以看到Win2012R2-Test03的CPU使用为30%左右,Win2012R2-Test04的CPU使用为56%左右. 结论:无保留CPU资源,限制超出总CPU资源和时,权重越高的得到的CPU越多. 实验四: Win

性能优化调优 | 如何分配虚拟机CPU拓扑会得到较好的性能

文章转自:原创: 杨建旭,https://mp.weixin.qq.com/s/ZtwKmG3xCsTShJni6xTCmw 对于物理机来说,CPU有socket.Core.thread的概念,一个linux虚拟机上面同样有这些信息,这些信息是什么含义,和物理机之间有多少对应关系呢?如何分配CPU拓扑,会得到较好的性能? 物理CPU 首先介绍一下物理CPU的概念: 一个服务器可以有多个socket 一个socket(插槽)可以插一个chip. 一个chip里面可以有N个core(核) 一个核里面

1-2 给容器和PODS 分配CPU资源

这一小节讲述 如何对容器分配CPU资源和对CPU资源使用做限制.一个容器被保证有足够的CPU资源可以被调用,但是也不允许使用超过CPU资源的限制. 创建一个命名空间 kubectl create namespace cpu-example 定义一个CPU资源请求和CPU资源限制 资源请求resources:requests 资源限制resources:limits 在这个练习中,你创建了一个POD拥有 0.5cpu和1cpu的限制apiVersion: v1kind: Podmetadata:n

配置Pods和containers--为Containers和Pods分配CPU资源

指定CPU请求和CPU限制 要为容器指定CPU请求,在容器资源清单中使用resources:requests字段.要指定CPU限制,使用resources:limits. cpu-request-limit.yaml 1 apiVersion: v1 2 kind: Pod 3 metadata: 4 name: cpu-demo 5 namespace: cpu-example 6 spec: 7 containers: 8 - name: cpu-demo-ctr 9 image: vish

[转载]【虚拟化系列】VMware vSphere 5.1 虚拟机管理

转载自:http://mabofeng.blog.51cto.com/2661587/1019497 在上一博文中我们安装了强大的VMware vCenter管理中心,通过VMware vSphere Client连接到VMware vCenter管理中心, vSphere 的两个核心组件是 VMware ESXi 和 VMware vCenter Server.ESXi 是用于创建和运行虚拟机的虚拟化平台.vCenter Server 是一种服务,充当连接到网络的 ESXi 主机的中心管理员.

汇编语言从入门到精通-CPU资源和存储器

CPU资源和存储器 在汇编语言中,需要访问的硬件资源主要有:CPU内部资源.存储器和I/O端口.本章将着重讲解CPU内部寄存器的命名.功能及其常见的用途,还要介绍存储器的分段管理模式.存储单元地址的表示法以及其物理地址的形成方式. 2.1 寄存器组 寄存器是CPU内部重要的数据存储资源,是汇编程序员能直接使用的硬件资源之一.由于寄存器的存取速度比内存快,所以,在用汇编语言编写程序时,要尽可能充分利用寄存器的存储功能. 寄存器一般用来保存程序的中间结果,为随后的指令快速提供操作数,从而避免把中间结

vSphere与Workstation虚拟机交互的几种方法(一)

vSphere是VMware用于企业数据中心的虚拟化产品,Workstation是VMware面向IT Pro.工程师及个人的虚拟机产品,这些人员经常使用VMware Workstation测试虚拟机,有时候需要将Workstation配置或测试好的虚拟机上载到ESXi:而有的时候,管理员需要将vSphere中的虚拟机"下载"到Workstation使用,这就涉及到不同平台之间"虚拟机"的"复制"问题.本文将介绍VMware Workstatio

用 cgroups 管理 cpu 资源

这回说说怎样通过 cgroups 来管理 cpu 资源.先说控制进程的 cpu 使用.在一个机器上运行多个可能消耗大量资源的程序时,我们不希望出现某个程序占据了所有的资源,导致其他程序无法正常运行,或者造成系统假死无法维护.这时候用 cgroups 就可以很好地控制进程的资源占用.这里单说 cpu 资源. cgroups 里,可以用 cpu.cfs_period_us 和 cpu.cfs_quota_us 来限制该组中的所有进程在单位时间里可以使用的 cpu 时间.这里的 cfs 是完全公平调度