转载:

https://blog.51cto.com/makkapakka/1696788

虚拟化小白对VMcpu分配的理解

首先说下:小弟才疏学浅,还请各路大神指教。

我这里以vSphere 5.5来举例说明

在我们虚拟化的环境中,VM的cpu数量如何分配,影响着VM的计算性能,更影响着ESXi主机的性能。

如果虚拟机少,能做到cpu不超分,那肯定是没问题,但是这种情况实在是太少了。

随着虚拟化的应用,我们的VM数量总是在增加,那这就涉及到VM的cpu分配问题。

首先,我们先理解几个和VMcpu相关的概念

Socket--------插槽数,物理cpu个数

Core----------核心数

Lcpu----------每个核心上同时可以执行的线程数,一台VM至少对应一个Lcpu

vCPU/vSMP----------虚拟机的CPU

以5.5为例,官方给出的数据是单台ESXi主机做多能分配出4096个vcpu。

这里的4096指的是单台主机上所有VM分配的vcpu总数,而不是一台VM就能分配这么多的vcpu。

单台VM最多可分配64个vcpu。这里的64,是5.5的最大值,但还需要主机上的物理cpu内核数决定,单台VM cpu的数量不能超过单台主机的物理内核数。比如,主机是4路8核cpu,共有32核物理cpu,那么主机中的任一一台VM都不会分配出超过32个vcpu。(不开启HT的情况下)

上面提到了HT的情况,我们来聊下HT和Lcpu的事情。

Lcpu--------Logical Processor 也叫作逻辑cpu,指的是每个物理内核同时可以执行的线程数。

Vsphere5.5每个物理内核上在不开启HT的情况下能虚拟出32个Lcpu。

但同一时间,一个内核只能运行一个Lcpu。开启超线程,可以有两个Lcpu。

不开HT的情况下,每个物理内核同一时间可执行一个线程。

开启了HT,可以让VMs有两个vcpu同时在这个核心上调度,可同时执行两个任务,调度优先级是均等的。根据计算负载的状态进行调度,原则上,同一台VM的两个vcpu,不会在开了超线程的同一个core上调度。默认情况下,一台VM调度某个Lcpu时,可以100%占用其资源。其他的VM想要使用则需要排队等待。

但是这并不意味着,所有的应用程序都适合开启HT。

超线程对性能的改进与应用程序有关系,有些应用程序使用HT可能会出现性能下降的情况。因为个Lcpu会共享同一个内核的资源(如内存缓存和功能单元)。

虚拟化环境里,如非必要,不要开启HT,因为会对VMkernel产生更多的cpu调度请求,反而不利于性能的发挥。

接下来谈谈关于VMcpu分配时的数值选择

给VM分配cpu的时候,有两个数值,一个是vcpu的socket数,一个是vcpu的core数。

这两者不同的组合,呈现给VM的计算性能是不一样的。

vsphere client

Numberof virtual sockets ----- 虚拟插槽数

Numberof cores per virtual socket ----- 每个虚拟插槽上的虚拟核心数

这里是4路8核的物理cpu,不开HT,每台VM最多能分配32个vcpu。这32个可以是1个socket、32核。

也可以是32个socket、每个socket里面有1个虚拟内核。但不管怎么分配,都不会超过物理内核数量。

Web client也是如此,只不过是显示的方式不同而已。

根据经验,这两个参数的实际应用如下

业务类型:

分布式业务--------多socket、单core

数据库---------多socket、单core

页面类型的网站--------单socket、多core

这里的虚拟socket数量如果超过了实际物理插槽数,我个人觉得,可能会对性能有影响。

关于VMcpu的事情,就先聊这么多吧!希望对大家有帮助!

最后说下:小弟才疏学浅,还请各路大神指教。

©著作权归作者所有:来自51CTO博客作者Makka_Pakka的原创作品,如需转载,请注明出处,否则将追究法律责任

虚拟化小白对VMcpu分配的理解相关推荐

  1. 虚拟化对VMcpu分配的理解

    我这里以vSphere 5.5来举例说明 在我们虚拟化的环境中,VM的cpu数量如何分配,影响着VM的计算性能,更影响着ESXi主机的性能. 如果虚拟机少,能做到cpu不超分,那肯定是没问题,但是这种 ...

  2. 基于VMware vSphere的虚拟化平台,内存分配是如何实现的?

    基于VMware vSphere的虚拟化平台,内存分配是如何实现的? https://mp.weixin.qq.com/s?__biz=MjM5NTk0MTM1Mw==&mid=2650627 ...

  3. 衡量计算机的指标(纯小白视角,帮助你理解如何去以较为专业的角度衡量计算机)

    我是小康小白,一个平平无奇的Java小白.热爱有趣的文字,生活和远方. 个人博客:https://blog.csdn.net/weixin_45791445 有问题欢迎QQ联系:1059320343 ...

  4. 5000字!小白也能从0-1理解评分模型

    评分模型是通过对潜在客户和存量客户的数据进行分析,用以预测他们未来表现的一种方法. 任何事情抓住了主要矛盾就能达到事半功倍的效果,在信贷领域,评分系统无疑是信贷领域的主要矛盾. 评分模型不管在技术含量 ...

  5. day17 - 动态内存的分配初步理解

    为什么需要动态内存分配? 1.动态内存很好的解决了传统数组的缺陷 2.传统数组也叫做静态的数组 动态构造一维数组的方法一: #include <stdio.h> #include < ...

  6. 小白科研笔记:深入理解SA-SSD中的Part-sensitive Warping机制

    1. 前言 这篇博客将细致分析3D目标单阶段检测方法SA-SSD中的Part-sensitive warping机制(简称PS Warping). 2. 代码上对PS Warping理解 论文上对PS ...

  7. 小白对挂载的简单理解

    挂载的简单理解 从生活当中找例子来和挂载进行类比从而理解挂载. linux Windows 设备文件 鼠标键盘 磁盘 磁盘 挂载点 电脑上的接口 挂载操作 把设备的插头插到电脑上 设备文件和鼠标键盘的 ...

  8. Inception网络 运行在Cifar10 测试集87.88% Tensorflow 2.1 小白从代码实践中 理解

    环境 tensorflow 2.1 最好用GPU 模型 Inception 训练数据 Cifar10 或者 Cifar 100 训练集上准确率:93%左右 验证集上准确率:88%左右 测试集上准确率: ...

  9. ResNet 运行在Cifar10 测试集86.38% Tensorflow 2.1 小白从代码实践中 理解

    环境 tensorflow 2.1 最好用GPU 模型 ResNet 训练数据 Cifar10 或者 Cifar 100 训练集上准确率:92%左右 验证集上准确率:87.6%左右 测试集上准确率:8 ...

最新文章

  1. c语言循环并行处理,C语言设计并行处理
  2. Resin install document
  3. dubbo协议原理机制 单一长连接
  4. [游戏学习24] MFC 各种绘图 字体学习
  5. Java IO流之转换流
  6. 两个同时comet matlab,Matlab讲义 - 图文
  7. 判断字符串出栈合法性
  8. leetcode 860. 柠檬水找零(贪心算法)
  9. 10. Python面向对象
  10. 如何看待阿里云加入Linux基金会金牌会员?
  11. PMOS 和 NMOS区别
  12. Ubuntu安装Sopcast
  13. 成功解决IDEA2022 Plugins 连不上、打不开
  14. recon-ng的使用
  15. d盘格式化了能正常使用吗
  16. JavaSE 实战 中奖判断
  17. Scrcpy手机投屏
  18. windows 下安装软件乱码
  19. 减轻运维人员工作压力?一招轻松实现无人值守
  20. numpy中rand与randn的区别

热门文章

  1. 1 1 2 3 5 8 java_1 1 2 3 5 8 13 21 34规律:一个数据等于前两个数之和.用java做,输入一个数据n,计算斐波那契数列(Fibonacci)的第n个值....
  2. rust 死后不知道家在哪_女朋友问去哪吃饭别说不知道了,郑州这几家餐厅最适合情侣约会。...
  3. java怎样下载maven资源库_下载Maven资源库文件
  4. oracle建表语句string,编程式Mybatis获取oracle表创建表语句
  5. 发自虎扑android客户端,巴斯托尼要长留我纯啊
  6. Linux如何清除系统密码,如何消除LINUX系统密码
  7. matlab 计算指北角,用MATLAB如何计算出矩形区域内的最大值?
  8. everything搭配什么软件_带你飞起来的好工具Everything,极速找到你所要的文件
  9. mysql查看执行计划任务_学习计划 mysql explain执行计划任务详解
  10. oracle 表的移动,oracle 表移动表空间