Hyper-V性能-CPU分配

  为新部署的微软Hyper-V环境中的主机和网络挑选合适的硬件并非易事,更不用说在生产环境中衡量和监控性能这项任务了。在这里,我和大家谈谈服务器的核心CPU与Hyper-V的结合是如何相得益彰的。

  我接触的IT管理员对于虚拟处理器和逻辑处理器是什么,它们对于某一个物理主机上虚拟机的最大数量有何影响经常存在一种误解。这不仅与分配给虚拟机的处理器数量有关,还与每个主机的物理内存数量直接有关。

  逻辑处理器是多核处理器的一个核心,所以一个四核处理器有四个逻辑处理器。如果该四核处理器有超线程(Hyper Threading)技术,它会显示为八个核心;这意味着,你的系统有八个逻辑处理器。尽管微软的说明文档这么介绍逻辑处理器,但是要注意:超线程并不会神奇地让处理器容量翻番。为了稳妥起见,就看核心算作逻辑处理器——如果你启用了超线程技术,其数量也不会翻番。

  虚拟处理器是你分配给一个个虚拟机的资源,你能分配多少个虚拟处理器,取决于访客/虚拟机操作系统。在这里,操作系统版本越新,功能就越强,所以Windows 2008/2008 R2能与四个虚拟处理器协同运行,而Windows Server 2003只能被分配一两个虚拟处理器。SuSE Linux企业版、CentOS和红帽企业版Linux(它们都是得到支持的操作系统版本)最多可以被分配四个虚拟处理器。如果你在虚拟桌面基础架构(VDI)环境中运行客户机操作系统,Windows 7最多可以与四个虚拟处理器协同运行,Vista能看到两个虚拟处理器,Windows XP SP3能看到两个虚拟处理器。

  就因为你为某一个虚拟机分配了两个或四个虚拟处理器,并不是说你应该这么做。首先,由于跨处理器的通信,在任何多处理器系统中存在一定的开销——无论是物理处理器还是虚拟处理器。但是在较新的操作系统中开销比较低,所以Windows 2008 R2虚拟机使用四个虚拟处理器没什么问题,而Windows Server 2003可能需要进行测试,看看在你的特定环境下使用两个虚拟处理器有没有好处。其次,这完全取决于工作负载——有些应用程序是密集的多线程(想一想SQL Server等类似应用),使用几个虚拟处理器比较好;而单线程应用程序或者只有几个线程的应用程序得到的好处并不大。

  另一个常见的误解是,为虚拟机分配一个或多个虚拟处理器与物理核心有关系。为虚拟机分配虚拟处理器其实更像为虚拟机分配一段预定的处理器时间,而虚拟机管理程序实际上把运行虚拟机的负担分摊到所有可用的处理器核心上。分配给某一个主机上多个虚拟机的虚拟处理器数量与微软的这个建议密切相关:一个系统中每个逻辑处理器的虚拟处理器至少是4个,每个逻辑处理器的虚拟处理器最多是8个。例外情况是:如果你在VDI环境下是清一色的Windows 7虚拟机,支持的最大比率是12;也就是说每个逻辑处理器的虚拟处理器最多可以是12个。

  如果你有配备2个四核处理器(即八个逻辑处理器)的Hyper-V主机,那么运行8个虚拟机完全没问题,每个虚拟机有4个虚拟处理器(共32个虚拟处理器)和最多16个虚拟机(共64个虚拟处理器)。如果你为每个虚拟机只分配了两个虚拟处理器,那么在每个虚拟机一模一样的这个例子中把那些数量提高一倍。当然,在实际情况下,不同虚拟机中虚拟处理器的数量会有所不同,具体看里面运行的工作负载。

  没有必要不建议跨NUMA使用多颗CPU核心,最好只使用单个NUMA节点下最大的逻辑CPU数量,因为这涉及到vCPU的调度,造成内存性能的下降。

  最后,如果你有一个主机,但处理器资源有限,那么你只要使用虚拟机预留设置和虚拟机限额设置,就可以改变诸虚拟机之间的平衡关系;虚拟机预留设置确保了虚拟机总是可以使用这个数量的处理器资源(但限制了可以在主机上运行的虚拟机总数),虚拟机限额设置控制着虚拟机可以使用多少被分配的处理器容量,Relative weight(相对权重)将该虚拟机与其他运行的虚拟机作一平衡;如果这个值比较低,意味着它在竞争时间段获得的资源会比较少。微软的建议是,除非你有充足的理由要改动,否则别去改动这些设置。

  还有处理器兼容性设置,让你可以在拥有不同年代处理器的主机之间迁移虚拟机,还让你可以运行版本很老的操作系统,比如Windows NT。

 From:http://blog.chinaunix.net/uid-27213548-id-3293763.html

Hyper-V性能-CPU分配

时间: 2024-10-07 16:27:02

Hyper-V性能-CPU分配的相关文章

win8/win10 自带Hyper V虚拟机

为什么是hyperV而不是vmware workstation或者virturalBox? 萝卜白菜,各有所爱.这里不比较数据,不深究技术,我选择的理由很简单:系统自带,不用安装额外的软件,而且性能也还可以. hyperV最早集成于win8中,win7及更老版本是没有此功能的.打开"任务管理器",在"性能"选项卡"虚拟化"中可到启用状态.可在BIOS设备.安全或CPU选项卡中找到虚拟化选项. BIOS中开启硬件支持后,可在"添加删除程序

Hyper v 单网卡 外部网络

先说一下环境: WIN 8.1 单网卡(有 无线 和 有线网卡, 但是没有多余的网络接口可插,还是等于单网卡) Hyper V 有3种虚拟交换机类型: 专用 / 内部 / 外部 各有各的用处, 我理解也不多,不多嘴误导大家. 今天说这个,是因为要做CSS和JS兼容调试, 开发用的都是IE11,用IE11的调试工具将文档模式调为 IE8 ,发现 jQuery.Validation 不能常运行. 但是用虚拟机装的 XP上直接用IE8 ,却没有任何问题,真的很蛋疼. 工作用的有两台电脑,一台装的是WI

Hyper - V (四)

安装虚拟机 新建虚拟机 为新建的虚拟机起名,默认保存路径为前面设置的默认路径 指定虚拟机内存大小 指定虚拟机网卡连接到外部网络还是内部网络(或专用网络) 创建虚拟硬盘,指定硬盘存储路径及硬盘大小 选择安装文件的引导路径,支持光盘安装,ISO安装等方式. 这里我们选择通过光驱引导的方式来安装系统 完成虚拟机设置. 右键点击新建的虚拟机,设置可以更改虚拟机的配置选项. 将ISO文件加载到虚拟机中,即可以实现光盘引导功能. 启动虚拟机-- 安装系统 Hyper - V (四),布布扣,bubuko.c

Hyper - V (三)

创建内部网络及专用网络 内部网络:不与外部通讯的网络,仅与物理机及虚拟机之间通讯. 专用网络:不与外部及物理机通讯的网络,仅支持虚拟机之间的通讯. 添加内部网络 单击虚拟网络管理器 2. 点击新建虚拟网络 -- 内部 -- 添加 3. 此时将新建立一个内部的虚拟网卡 在添加内网通信的IP地址即可. Hyper - V (三),布布扣,bubuko.com

Hyper - V (六)安装Hyper - V系统集成服务

安装Hyper - V系统集成服务 作用: 操作系统关闭 -- 当物理机关机时,Hyper - V 上的虚拟机将先于物理机关机.如不安装此服务,虚拟机将不会自动关机而造成类似于直接断电. 时间同步 -- 即虚拟机与物理机的时间同步 数据交换 -- 物理机可以查看到虚拟机的相关信息 ,如计算机名等 检测信号 -- 当虚拟机假死或无响应状态时,虚拟机会发送重启等信号 备份(卷快照) -- 开启备份功能 如何安装: 点击操作 --  插入集成服务安装盘 点击安装即可,安装完毕后重启 Hyper - V

php-fpm 进程在云服务器cpu分配不均匀

8核的云服务器,开了200个php-fpm进程,用top命令查看  大部分进程都在cpu 0 上跑着,导致其他cpu 负载很低,cpu分配不均匀: 使用shell 解决问题: 列出所有php-fpm 进程, 用 taskset 重新分配cpu 1 #!/bin/bash 2 3 CPUs=$(grep -c processor /proc/cpuinfo) 4 PIDs=$(ps aux | grep "php-fpm[:] pool" | awk '{print $2}') 5 6

PHP 获取linux服务器性能CPU、内存、硬盘、进程等使用率

数据库配置文件: conn.php <?php define("MONITORED_IP", "172.16.0.191"); //被监控的服务器IP地址 也就是本机地址 define("DB_SERVER", "172.16.7.2"); //存放数据的服务器IP地址 define("DB_USER", "root"); define("DB_PWD",&qu

安装配置 HYPER V Core SERVER 的基本命令 - Hyper V 2012 R2

安装配置 HYPER V Core SERVER 的基本命令 - Hyper V 2012 R2 1. 基本命令 安装集群故障转移角色 Install-WindowsFeature -name Failover-Clustering -IncludeManagementTools 关闭防火墙 netsh advfirewall set allprofiles state off 关闭IPv6 New-ItemProperty -Path HKLM:\SYSTEM\CurrentControlSe

Hyper V server 2012 r2 常用的powershell命令

Hyper V server 2012 r2 常用的powershell命令 ? 获取网卡信息 Get-netadapterGet-netipinterface ? 设置DNS地址Set-DnsClientServerAddress -InterfaceAlias NIC NAME -ServerAddresses "1.1.1.1","2.2.2.2"注释:NIC Name: 网卡名称, 1.1.1.1,2.2.2.2 ? 网卡聚合NIC Teaming: New