在服务器虚拟化项目或者虚拟桌面项目中,经常会碰到这样的问题,虚机为高负载类型的业务,对CPU的要求很高的时候,我们希望为这些虚拟桌面分配更多的CPU资源,但是我们也发现,部分系统对CPU数量的支持有数量的限制,超过以后,即使分配,也没法利用到。也有一些软件会依据CPU的数量(socket的数量)来收费,所以也需要对CPU进行一些调整来减少费用。

首先说一下,在CPU中有几个概念:Socket、Core、Hyper-Threading(HT)。首先得搞清楚这些。

  • Socket:wikipedia的解释是连接到主板的一个CPU,通俗讲就是一个物理CPU
  • Core:wikipedia的解释同一个CPU芯片上集成的多个核心,也就是所谓的多核的核
  • Hyer-Threading:wikipedia的解释模拟的多线程,通俗讲在一个核心上模拟出两个CPU执行线程,能够提高多任务的性能

搞明白了这些以后,我们就来说说系统本身对CPU这几方面的支持限制。

操作系统对CPU的支持分Socket和Core两方面,而Hyper-Threading对操作系统来说基本是不可见的(其实可以通过CPU参数以及其他机制系统会知道开启了超线程)所以,HT可以简单理解为也是core。

windows 2003等服务器操作系统对物理CPU(socket)以及多核CPU(multi-Core)的支持受产品版本(标准、企业、数据中心版本等)的限制,具体就不详细列举了。本文主要针对windows 7和XP。(面向虚拟桌面用户)

针对多物理CPU(multi-socket):

windows 7和XP最多支持2路CPU,企业版以上支持2路CPU,企业版以下(Home版)只支持1路CPU

针对多核心(multi-core):

windows 7 32位系统支持最多32核,64位windows 7支持多达256核的CPU。

而XenServer分配给虚机的vCPU都是以Socket的形式呈献给上层虚机的,这就导致,通过XenCenter最多只能给虚机分配2个vCPU,即使多分配,系统也无法识别到,因为windows 7和XP最多只支持2个socket。

而windows 7和XP又能支持多core,所以我们如果能够以每个socket有多核,然后分配给虚机,这样就可以达到分配更多的CPU自愿给这些虚机系统。例如,如果我们每个socket有4核心,那么我们就可以分配2路4核弓8个vCPU给虚机。

要进行这样的调整,我们需要手动调整一下XenServer中虚机的CPU的平台模式设置。

1
2
3
4
5
6
7
8
9
#查找对应模板或者虚机的UUID
xe vm-list
#or
xe template-list
#设置模板或者虚机的Platform参数,设置cores-per-socket
xe vm-params-set Platform:cores-per-socket=<some count> uuid=<target vm uuid>
#or
xe template-params-set Platform:cores-per-socket=<some count> uuid=<target template uuid>

这样,我们就可以以每socket多个核心的方式分配 CPU了。推荐修改虚机模板,这样减少很多工作。

BTW:如果cores-per-socket设置为4,那么如果分配一个vCPU给虚机,那么就是一个socket,如果分配3个vCPU给虚机,由于不超过4,还是以一个socket3个核心的方式出现在虚机中,如果是5个,那么将是一个socket 为1核心,另外一个socket为4核心分配给虚机,而如果分配8个vCPU,那么虚机将会看到2个socket,每个4核心。其他的计算方法依次类推。所以,直接修改模板是安全省事的,但是这样是否会带来性能的开销,有待寻找其他资料佐证。

转载于:https://blog.51cto.com/sunyu/867147

XenServer中Windows 7与XP多vCPU支持配置相关推荐

  1. Windows 2000/NT/XP管理员密码丢失解决方法

    Windows 2000/NT/XP管理员密码丢失解决方法 2003-10-30 CERT.SWJTU.EDU.CN 经常被问即管理员密码丢失怎么办?下边就windows 2000/nt/xp系统下的 ...

  2. 设置XenServer中的Linux vm从光驱启动

    xenserver中的windows vm安装后可以通过xencenter设置从光驱启动,而linux vm则没有这样的选项,可以通过以下命令行解决: xe vm-param-set uuid=546 ...

  3. 全新的基于 Windows NT (2000/XP/2003) 的媒体解码包.

    Zoom Player Platinum Stream Codec ( 绚彩魅影) 2.1 Build 104 全新的基于 Windows NT (2000/XP/2003) 的媒体解码包.它包含了支 ...

  4. windows 9X, 2000, xp所有版本注册表设置大全

    windows 9X, 2000, xp所有版本注册表设置大全 别人Blog上的,非常全面!玩计算机程序的人必不可少的资料,供大家参考! 一.开始菜单及相关设置 [HKEY_CURRENT_USER/ ...

  5. Windows 2003和XP之间的异同

    Windows 2003和XP之间的异同 收集整理了一下,给一些朋友解说server2003系统的设置.关于用server操作系统,由于不了解,对稳定性,兼容性,驱动或多或少有些疑虑,Win2003是 ...

  6. 简明教程:只需三步成功“硬刷”BIOS为SLIC 2.1完美激活Windows 7 / Vista / XP三大系统

    简明教程:只需三步成功"硬刷"BIOS为SLIC 2.1完美激活Windows 7 / Vista / XP三大系统 关于"硬刷"BIOS为SLIC 2.1,我 ...

  7. 无法启动此程序因为计算机中丢失d3dx9_36.dll,xp系统运行真三国无双游戏提示d3dx9_36.dll丢失的解决方法...

    真三国无双是一款备受许多xp系统用户喜欢的游戏,然而在玩的过程中,有不少xp系统用户反映说遇到提示d3dx9_36.dll丢失的情况,导致无法继续玩真三国无双游戏,这是怎么回事呢,现在随系统城小编一起 ...

  8. 安装Windows 7的XP模式

    第一步,操作系统必须是Windows 7 专业版.企业版和旗舰版这三个版本. 第二步,进入BIOS中,找到Virtualization Technology或VTx或Hardware Virtuali ...

  9. VC中Windows中一些宏的含义

    https://www.cnblogs.com/zhcncn/archive/2013/05/21/3091052.html 1. _WIN32_WINDOWS,_WIN32_WINNT,WINVER ...

最新文章

  1. App3种开发方式的优劣分析:原生、混合和H5
  2. db:migrate
  3. Ehcache学习一:JDBC caching
  4. json for java
  5. POJ1061 青蛙的约会【扩展欧几里得算法】
  6. 服务器查看外网IP地址和方法
  7. mysql的数据层基类_C# 基于MySQL的数据层基类(MySQLHelper)
  8. 作业4 猜数字游戏jsp
  9. git log和reflog
  10. 局域网内网关欺骗获取网站密码
  11. 安鑫 十年资产翻十倍 普通人是怎么做到的
  12. 手机屏幕上的战争 三星领先苹果半步
  13. 【Python】如何将文件中\xe8\x85\xbe\xe8字符转成中文?
  14. 【废墟】知我者谓我心忧,不知我者谓我何求~
  15. 5G C-V2X技术介绍
  16. const T 与T const(const T vs.T const的翻译 Dan Saks)
  17. 大白话之One Pixel Attack for Fooling Deep Neural Networks论文讲解
  18. iHRM 人力资源管理系统_第7章 POI报表的入门
  19. A Game of Thrones(101)
  20. 地震引发的网络关系简化论

热门文章

  1. c4d支持mac系统渲染器有哪些_C4D常用的4大主流渲染器如何选择与比较 (OC/RS/VR/阿诺德)...
  2. java数据类型_JAVA的数据类型
  3. oracle消除重复的行使用的什么函数,利用Oracle的row_number() over函数消除重复的记录...
  4. Java设计模式 - 适配器模式
  5. elasticsearch 第二篇(配置篇)
  6. Java程序员从笨鸟到菜鸟之(七十)细谈Spring(三)IOC和spring基本配置详解
  7. 算法之图搜索算法(一)
  8. java学习笔记4--对象的初始化与回收
  9. 草图检索和识别[开源]
  10. 如何设计一门语言(八)——异步编程和CPS变换