精华内容
下载资源
问答
  • VMWare虚拟机处理器数量与每个处理器内核数量关系详解,以及分配CPU资源的建议概念CPU的物理核心和超线程CPU的睿频机制 概念 处理器数量:虚拟机上的CPU个数(上图中的插槽数,是机器主板上CPU的个数,并非CPU的...

    VMWare虚拟机处理器数量与每个处理器内核数量概念,以及分配CPU资源详解

    概念

    在这里插入图片描述

    处理器数量:虚拟机上的CPU个数(上图中的插槽数,是机器主板上CPU的个数,并非CPU的物理核心数
    每个处理器的内核数量:每个虚拟的CPU有几个内核(可以看到虚拟机内部并不区分物理核心数和线程数)
    处理器内核总数:处理器数量 * 每个处理器的内核数量(即物理机分配给虚拟机的CPU线程数,只要该参数一样,不管上面两个参数怎么调整整机性能都是一致的)
    以上3个参数的上限由【当前要安装的目标操作系统所支持的CPU最大个数、物理机CPU线程总数、VMWare版本所支持的虚拟机最大核心数】三者中的短板决定


    CPU的物理核心和超线程

    问题:现有一台CPU为12核24线程的物理机(该CPU正常发挥水平),要使得目标虚拟机至多拥有其50%的CPU性能,该怎么分配?
    错误回答:分配CPU资源时,使“处理器内核总数”等于12就行。
    如果将问题中的CPU换为24核24线程,那这个回答就是正确的。(所以你的CPU如果没有超线程,那么文章到这里就结束了~笑)
    超线程的性能并不等于两个CPU物理核心的性能,多出的线程能提供多少性能取决于CPU的架构。(多出的线程性能可用CPU性能测试工具测出)
    操作系统在调用有超线程技术的CPU处理多核应用时,优先调用物理核心(物理线程),当所有的物理核心占满后再调用超线程技术提供的线程。
    比如问题中的CPU有24个线程,其中物理线程为A1–A12,虚拟线程为B1–B12,A1与B1同属于一个核心,当A1占满后,操作系统会优先调用A2而不会调用B1。当A1–A12都占满后,才会调用B1–B12(实际调用情况可能不是如此,但是展现出来的算力可以依此表现),所以分配12个线程很可能会出现远超50%性能的情况。
    在这里插入图片描述
    上图就是12核24线程的5900X跑CPU-Z的分数,可以看到其多线程倍率(总线程得分/单核单线程得分)并不是24或者接近24的值,而是远低于24的14.xx。也就是说这颗处理器多出来的线程只增加了(14.73-12)/12=22.75%的性能(但这并不是准确的,请看下面)。

    CPU的睿频机制

    在这里插入图片描述
    目前4C8T起步的主流CPU都有睿频机制,在CPU只占用少数核心的情况下把一个或是几个核心进行频率加速。
    在这里插入图片描述
    上图出现的CPU频率差异会导致全核状态下的CPU多线程倍率比实际偏低,所以要想得出准确的倍率需要先将CPU频率锁定。
    两种锁定CPU频率办法:
    1、通过Windows控制面板中的电源选项使更改“最小/最大处理状态”,使其小于100%
    2、通过主板BIOS进行锁频
    第二种方法由于不同品牌主板BIOS调节步骤不一致,所以这里介绍第一种方法
    在这里插入图片描述
    在这里插入图片描述
    设置完后,运行CPU-Z,先勾选与自己CPU核心数一样的线程数进行测试,验证线程倍率是否≈核心数量,如果低于,那需要将“最小/最大处理状态”再次降低。
    在这里插入图片描述
    如上图,11.68≈12,所以接下来勾选全部线程进行跑分
    在这里插入图片描述
    最后得到多线程倍率为15.69,若要使虚拟机获得50%性能,则需要分配15.69*0.5≈8个线程。
    在这里插入图片描述
    验证:上图右边为分配了8个线程的虚拟机,4993.7/9664.1≈51.7%
    测试完成后别忘了把电源计划还原,否则会限制CPU正常发挥性能。

    总结

    对于没有超线程的CPU:分配给虚拟机的线程数=目标性能比率 * 物理机线程总数
    对于有超线程的CPU,若目标性能比率 <= 物理核心数 / 多线程倍率,则分配给虚拟机的线程数 = 目标性能比率 * 物理机多线程倍率若目标性能比率 > 物理核心数 / 多线程倍率,则分配给虚拟机的线程数 = 物理核心数 + (目标性能比率 - 物理核心数 / 多线程倍率) / (1 - 物理核心数 / 多线程倍率) * 虚拟线程数

    PS:这里的目标性能比率为【虚拟机至多拥有的CPU性能/物理CPU机性能】;虚拟线程数=CPU总线程数 - 物理核心数;有睿频技术的处理器需要锁频来获得准确的多线程倍率

    展开全文
  • 在新建虚拟机时会选择处理器...2. 总处理器核心数 = 处理器数量 * 每个处理器的核心数; cat /proc/cpuinfo | grep 'core id' 但是核数却是4核,说明这个处理器是4核的。 3. 还有一个概念:线程数; cat /p...

    原文链接:https://blog.csdn.net/liugongfeng/article/details/45046481?utm_medium=distribute.pc_relevant.none-task-blog-searchFromBaidu-3.control&depth_1-utm_source=distribute.pc_relevant.none-task-blog-searchFromBaidu-3.control

     

    在新建虚拟机时会选择处理器数量,默认如下

          

    下面介绍几个参数的区别

    1. 处理器数量:表示有几个处理器;cat /proc/cpuinfo | grep 'physical id'

         

        从中看出只有1个处理器;

     

    2. 总处理器核心数 = 处理器数量 * 每个处理器的核心数; cat /proc/cpuinfo | grep 'core id'

         

         但是核数却是4核,说明这个处理器是4核的。

     

    3. 还有一个概念:线程数; cat /proc/cpuinfo | grep 'processor'

         

         从图看出有4个线程;

     

    总结:1个处理器可能有多个核心,1个核可能对应几个线程;

               如果使用中发现虚拟机配置太低,在编辑虚拟机设置可以动态调节核心数;

             

    展开全文
  • 有说虚拟机处理器设置页面的“处理器数量”指的是“核心数”,“每个处理器的内核数量”是超线程数量。按照这种说法,那么我们比如要分配6核12线程给虚拟机,那么就得设置成: 处理器数量:3 每...

    最近搞了个12核24线程的服务器CPU,加上华南金牌的主板,配了64G的内存,有点飘。然后用VMWARE14建了好几个虚拟机,多开耍耍。然后CPU的分配成了一个问题,因此上网查了下,有两种说法:

    方案1:

    有说虚拟机处理器设置页面的“处理器数量”指的是“核心数”,“每个处理器的内核数量”是超线程数量。按照这种说法,那么我们比如要分配6核12线程给虚拟机,那么就得设置成:

    处理器数量:3

    每个处理器的内核数量:4

    但是选择“处理器数量”时,超过2的值会有个警告(CPU 的总数已超出该主机上的限制),就算我们不管它,装完系统后,查看windows任务管理器时会发现,实际上总共的核心数只有2*4=8个核心。所以事实胜于雄辩,这种方式是不正确的。

    方案2:

    另一个说法就是,“处理器数量”跟物理主机的CPU个数一样,比如我机子上只有一颗CPU(12核24线程),那么这个就只能选1。

    那么“每个处理器的内核数量”就是核心数了,但是VMWARE没有超线程的选项,所以不管它,我们设置成:

    处理器数量:1

    每个处理器的内核数量:12

    进入虚拟机win7系统后,打开windows任务管理器,发现法分配成功,会看到12个核心:

    但是新的问题又来了,虚拟机(win7系统)分配了12个核心,那么这12个核心对的是我们物理主机12核还是12个线程呢?

    突然想到一种验证方法:用CPU跑分软件,会把CPU所有核心(及超线程)全部占满。

    那么,我们就进入虚拟机win7系统中,安装了鲁大师,只进行CPU的跑分:

    与此同时,赶紧切换到物理主机(win10系统),打开任务管理器:

    上面这个截图,是物理真机(win10系统)打开“性能”页面,把CPU利用率图形改成“逻辑处理器”来查看所有核心和线程的占用情况。通过观察,发现有12个线程占用率到达100%。

    结论:方案2正确,且WMWARE占用的是最终的“超线程”。

    展开全文
  • VMware : 处理器数量和每个处理器核心数量

    万次阅读 多人点赞 2020-06-21 23:51:02
    如何配置“处理器数量"和"每个处理器核心数量",这两个参数困扰了我很久,然后我查阅了官方资料,看到了两种主流说法,但对我的说服力都不是不大。在这里,我提出了个人猜想,并做了实验论证,欢迎大家指正 !!

    如何配置“处理器数量"和"每个处理器的核心数量",这两个参数困扰了我很久,然后我查阅了官方资料,看到了两种主流说法,但对我的说服力都不是很大。在这里,我提出了个人猜想,并做了实验论证,欢迎大家指正 !!

    目录

     一. 官方资料

    二. 主流说法

    三. 个人猜想


     一. 官方资料

           在官方文档,找到一些关于虚拟机处理器配置的相关内容;在官方社区,没有找到对应话题。两句话很有启发性,即:

    (1)"您可以配置虚拟机的处理器设置,包括处理器数量、每个处理器的核心数,以及虚拟化引擎的首选执行模式"  

    (2)"只有至少具有两个逻辑处理器的主机才支持指定多个虚拟处理器"。

          对啊,为什么这两个参数一定要是指导我们物理主机如何去"分配"处理器资源给虚拟主机,而不能是指导如何去"虚拟"虚拟主机(如ubuntu等)本身的虚拟处理器参数呢?很显然,官方没有这样的界定,于是我开始了我的求证之路。

     

     

    二. 主流说法

    说法一:虚拟机处理器设置页面的“处理器数量”指的是“核心数”,“每个处理器的内核数量”是超线程数量。

           这个说法的赞同人数挺多的,毕竟官方不会这么无聊搞出两个一样的概念,认证过程说的也蛮有道理的。但是,下面的例子有点驳斥这种说法。如,我的物理主机 4核8线程,配置 8 * 1正常运行,我的核心只有4核,而我配置8也可以,我哪里来那么多物理给它?感觉,这个说法站不住。 

     

    说法二:“处理器数量”跟物理主机的CPU个数一样

           这个我有幸遇到一个博主写的论证博客,有些说法我也挺赞同的,主要是最后的观点不谋而合。

    文章链接:https://blog.csdn.net/tiancao222/article/details/104412090?utm_medium=distribute.pc_relevant.none-task-blog-OPENSEARCH-1&depth_1-utm_source=distribute.pc_relevant.none-task-blog-OPENSEARCH-1

          博主的结论:支持说法2,且VMware占用的是最终的“超线程”。但是,他没有提及这两个参数的意义是什么。

     

    三. 个人猜想

    (1)“处理器数量”                   :指导如何虚拟化  --  虚拟主机的虚拟处理器数量

    (2)“每个处理器的核心数量” :指导如何虚拟化  --  虚拟主机的每个虚拟处理器的核心数量

    (3)“处理器内核总数”            :分配处理器依据  --  真实物理主机分配给虚拟主机的处理器线程总数(真实处理器资源)

    注意表达前缀:“虚拟主机的” ,即这些是虚拟主机被虚拟化出来的处理器参数。意味这些处理器参数在虚拟机内部的处理器信息是可查询的,那么就可以很容易去验证啦。

    配置成功关键:“处理器内核总数”决定着配置参数是否能够通过(处理器内核总数 = 处理器数量 * 每个处理器的核心数量  ),即 只要“处理器内核总数”不超出我们真实物理主机处理器的线程总数,配置参数都可以通过。


    1.  说明一下我的猜想:

    (1)“处理器数量”和“每个处理器的核心数量”这两个参数意义重点不在于指导物理主机怎么  “分配外部处理器资源”  给虚拟主机,而是在于指导如何  “配置虚拟主机内部的处理器参数”  ,即如何去虚拟化虚拟主机的处理器参数,即CPU数量、物理核心。

    (2) “处理器内核总数”则是真实物理主机分配给虚拟主机的真正处理器资源,分配的是VMware占用的是最终的“线程总数”,是真实物理主机分配给虚拟主机的处理器的分配依据


    2.  举个例子说明猜想:

    处理器数量 :2

    每个处理器的核心数量: 4

    处理器内核总数 :8  ( = 2 * 4) 

    2 和 4 不是在于指导物理主机(且称为windows)如何分配外部处理器资源给虚拟主机,而是在于指导如何虚拟化虚拟主机(且称为ubuntu)的内部处理器。配置成功之后,我们可以在虚拟主机(ubuntu)的 /proc/cpuinfo中看到,处理器数量是2,每颗处理器的物理核心是4,这个是虚拟主机的虚拟处理器参数,不是物理主机分配的外部处理器资源,真实分配的处理器资源是8,即分了8个线程,只要8没有超出真实处理器的线程总数,配置就可以成功。


    3.  个人猜想实验例证:

    ----  物理主机处理器资源:4核8线程

    ----  配置没有超出8线程的(配置成功)  : 1 * 4    1 * 8    2 * 2    2 * 4    4 * 2    8 * 1

    ----  配置已经超出8线程的(配置失败)  : 8 * 2    4 * 3    2 * 6    1 * 12

    ----  为什么这样配置原因:

    (1)因为第一种说法说是处理器数量是“核心数”,而我的处理器是四核,如果我设置为 8 * 1 岂不是应该不被允许,(即配置失败,因为我的只有4核) ??那么假如配置通过了,则可以说明第一种说法是错误的;

    (2)可以看到配置超出8线程的则不被允许,而配置没有超出8线程的则可以通过,则说明配置参数能否被通过,是看配置参数的处理器内核总数是否超出真实物理主机的线程数(比如我的是8线程)(关键词:超出、超线程数)

    (3)通过多个可以配置成功的例子,去查看虚拟机虚拟出来的处理器数量、CPU物理核数、CPU逻辑核数,可以发现我们的配置参数和虚拟机的处理器参数有很大的联系(关键词:虚拟)

     

    1)查看我的处理器资源(CPU一颗、四核八线程)

     

    2)贴上查询 虚拟机Ubuntu 的 CPU数量、CPU物理核数、CPU逻辑核数的方法

     

    3)测试

      //查看不同physical id的数量,直接输出CPU数量

    cat /proc/cpuinfo | grep "physical id" | sort -u | wc -l

    // 查看不同core id的数量,直接输出CPU物理核数(注意:输出的是一颗CPU物理核数

    cat /proc/cpuinfo | grep "core id" | sort -u | wc -l

    // 查看不同 processor 的数量,直接输出CPU逻辑核数总数(注意:输出的是本服务器所有CPU的逻辑核的总数

    cat /proc/cpuinfo | grep "processor" | sort -u | wc -l

    实验输出:

    1.  没有超出限制(配置成功)的例子:(处理器内核总数 <= 真实物理主机的线程总数,此处为8)

     

    2.  已经超出限制(配置失败)的例子:(处理器内核总数 > 真实物理主机的线程总数,此处为8)

     

    实验结论:

    (1) 第一种说法  :“处理器数量”是“核心数”,显然是错误的;

    (2) 第二种说法  :VMware占用的是最终的“超线程”,在这里也得到了辅助证明;

    (3) 自己的说法  :

    (1)“处理器数量”                   :指导如何虚拟化  --  虚拟主机的虚拟处理器数量

    (2)“每个处理器的核心数量” :指导如何虚拟化  --  虚拟主机的每个虚拟处理器的核心数量

    (3)“处理器内核总数”            :分配处理器依据  --  真实物理主机分配给虚拟主机的处理器线程总数(真实处理器资源)

     

    配置关键:“处理器内核总数 ”是否超出真实物理主机的线程总数,即 “处理器内核总数”不能超出我们真实处理器的线程总数

    值得注意:在虚拟主机(ubuntu)中,“逻辑核心总数 ”和 “物理核心总数” 相同 ,猜测他们是一个物理核心对应一个逻辑核心

     

    展开全文
  • 弹性云服务器 ECS弹性云服务器(Elastic Cloud Server)是一种可随时自助获取、可弹性伸缩的云服务器,帮助用户打造可靠、安全、灵活、高效的应用环境,确保服务持久稳定运行,提升运维效率三年低至5折,多种配置可选...
  • 所以一般编译的Ubuntu 服务器的cpu处理器都要求非常高,基本要i7处理器以上配置。当然我们经常图方便直接用虚拟机运行Ubuntu了,所以在此说明如何实现在不影响主机的情况下尽量分配cpu给虚拟机。 1.以我个人的...
  • 处理器数量 :指CPU核心数(例如:单核/双核/四核/六核/八核),并不是指CPU颗数。 每个处理器的内核数量:指CPU中的线程数。 查看电脑配置参数方法: 1、网上查询对应的CPU参数 2、打开任务管理器,“性能”界面...
  • https://blog.csdn.net/p1279030826/article/details/103044840
  • 如何获取Java虚拟机可用的处理器个数?   Runtime类的Native方法#availableProcessors()已经提供了,只要通过Runtme类的实例调用即可。   /** * Returns the number of processors available to the Java ...
  • 虚拟机处理器核数与物理cpu的关系

    万次阅读 2015-05-13 11:17:53
    创建虚拟机时,需要配置vCPU资源。 因此vCPU是虚拟机的部件。 因此脱离VM,谈论vCPU是没有意义的。 虚拟化管理系统如何调度vCPU,取决于系统内的虚拟机数目以及虚拟机配置的vCPU的情况。 大致的情况如下: 1...
  • 创建虚拟机时,需要配置vCPU资源。 因此vCPU是虚拟机的部件。 因此脱离VM,谈论vCPU是没有意义的。虚拟化管理系统如何调度vCPU,取决于系统内的虚拟机数目以及虚拟机配置的vCPU的情况。大致的情况如下:1、当系统内...
  • VMware 虚拟机中涉及的CPU数量 & 内核数量 & 线程数 & 资源分配问题 Intro: 今天想在 VMware 上装18.04.5和14.04.6两个版本的 Ubuntu 系统,因为课题用到的某些软件只会兼容特定版本的系统。在安装第二...
  • VMWare中的CPU数量与核心数量意义

    万次阅读 2018-02-21 12:41:48
    自己也可以求证,首先你肯定知道自己物理机CPU 信息(例如I3 双核四线程),在vmware中设置虚拟机处理器数量,从字面意识理解应该是指CPU颗数,正常设置值最大应该为1(因为物理机只有一块CPU),但最大有效值可以...
  • 虚拟机上安装Linux操作系统

    千次阅读 多人点赞 2019-07-20 23:24:18
    虚拟机上安装Linux操作系统 虚拟机(Virtual Machine)指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。现在Window操作系统上流行的虚拟机软件有:VMware、Virtual Box和...
  • java.lang.Runtime.availableProcessors() 方法返回可用处理器的Java虚拟机数量。这个值可以在虚拟机中的某个调用过程中改变。应用程序是可用的处理器数量敏感,因此应该偶尔查询该属性,并适当调整自己的资源使用...
  • VMWare中处理器和内存配置含义

    万次阅读 2018-08-07 11:45:37
     在创建虚拟机系统后,默认处理器配置都是为1,内存一般选为1G,然而在使用Linux系统编译大型软件时,速度慢耗时较长,这时候就需要调整一下处理器和内存配置,使得计算机性能充分发挥,下面说明VMWare中处理器和...
  • hyperv虚拟机上虚拟机的cpu个数问题

    千次阅读 2012-06-11 20:21:54
    虚拟机支持的内存容量最多达64G,虚拟机支持的vcpu个数最多为4个(如果你虚拟机是WIN2008最多可以4个,如果是win2003最多2个(这里其实是表示微软支持的个数,你也可以通过别的技术手段可以支持4个),如果是winxp或...
  • Java面试题大全(2020版)

    万次阅读 多人点赞 2019-11-26 11:59:06
    实现数量:类可以实现很多个接口;但是只能继承一个抽象类。 访问修饰符:接口中的方法默认使用 public 修饰;抽象类中的方法可以是任意访问修饰符。 15. java 中 IO 流分为几种? 按功能来分:输入流(input)、...
  • https://www.cnblogs.com/gambler/p/13227652.html#:~:text=%E5%A4%84%E7%90%86%E5%99%A8%E6%95%B0%E9%87%8F%E6%8C%87%E7%9A%84%E5%B0%B1,%E6%95%B0%E5%B0%B1%E6%98%AF%278%27%E3%80%82.
  • 在客户这部署一个系统,环境为虚拟机下的win server 2008 r2,网管添加了CPU核心数,重做的虚拟机,但设备管理器中显示已有16核心,但为什么任务管理器中CPU使用记录的窗口数是8个,会影响使用吗?有法可解吗?求...
  • vmware处理器配置实测

    2021-04-24 15:12:08
    Vmware一般将处理器数量(p)配置为1(一般只有一个处理器) 每个处理器的内核数量配高(4/6/8...) 方案一和方案二为对比测试,我们应该选 择方案二的配置才正确 方案一(将处理器数量(p)配置为4, 每个处理器的...
  • VM下ubuntu的cpu分配注意事项

    千次阅读 2020-04-28 17:49:41
    处理器数量(核心数)最好不要比每个处理器的内核数量(线程数)多
  • Java虚拟机 - JVM是什么?

    千次阅读 2018-05-08 14:54:36
    JVM就是Java运行虚拟机,那么虚拟机又分为系统虚拟机和程序虚拟机,而JVM是属于程序虚拟机,所以不要看到是虚拟机就误认为JVM是系统虚拟机。 JVM是帮助Java程序开发者在开发过程中无需考虑无用的资源需要进行回收...
  • java.lang.Runtime.availableProcessors() 方法返回到Java虚拟机的可用的处理器数量。此值可能会改变在一个特定的虚拟机调用。应用程序可用处理器数量是敏感的,因此偶尔查询该属性,并适当地调整自己的资源使用...
  • 在之前,我们说过:在本教程中我们将在虚拟机Virtual Machine(简称VM)上安装CentOS并在此基础上系统学习Linux;配置过程如下:1、安装虚拟机Virtual Machine。2、在虚拟机Virtual Machine中创建虚拟空间。3、在虚拟...
  • Windows Server 2016,它可以理解为服务器版的 Windows 10,宣告整个核心...据了解,与前代不同的是,Windows Server 2016 是根据处理器核心数而非处理器数量进行授权。同时该版本在拓展安全性、弹性计算、缩...
  • C#基础教程-c#实例教程,适合初学者

    万次阅读 多人点赞 2016-08-22 11:13:24
    CLR为C#语言中间语言代码运行提供了一种运行时环境,C#语言的CLR和JAVA语言的虚拟机类似。这种执行方法使运行速度变慢,但带来其它一些好处,主要有:  通用语言规范(Common Language Specification,CLS):.NET...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 21,482
精华内容 8,592
热门标签
关键字:

虚拟机处理器核心数量