如何防止Hyper-V中的NUMA技术中心组织架构图出现问题

查看单个NUMA节点的内存大小:
Hyper-V VM VID NUMA节点\PageCount:8376970k/GB
Hyper-V VM VID NUMA节点\Processor Count:12 (该NUMA节点上共有12C,一个NUMA节点对应一颗物理CPU,一颗物理CPU的核心数即为NUMA节点的CPU核心数量)
  一个NUMA节点一共是8376970个分页,每个分页的大小是4KB,所以一个NUMA节点对应的是32GB内存,如果单个节点上的内存已经使用了20GB,再分配给另一个虚机20GB内存的话,由于该节点所剩内存为12GB,所以该虚机就要访问远程NUMA节点的内存,就会降低访问速度。为了避免该情况,应尽量避免虚机使用多个NUMA节点的资源,可以手动配置某个虚机属于哪个NUMA节点。
查看VM位于哪个NUMA节点:
Hyper-V VM VID Partition\Preferred NUMA Node Index\2003_1(VM实例名称)
参考:.tw/daniel07793/archive//71046.aspx
=======================================
Hyper-v与NUMA介绍:
随着Windows server2012&的推出,微软主推的虚拟化重头hyper-V3.0着实令人惊艳:宿主机支持160个逻辑CPU(core)和2TB内存,虚拟机支持32个虚拟CPU以及1TB内存。还包括其中最令人心动的一项就是动态内存!这是怎么实现的呢?和Numa又有什么关系呢?
&首先,什么是Numa(非统一内存访问)?NUMA结构就是指定固定大小的内存分配给一个指定的cpu序列,然后这样就形成一个节点NODE,整个框架是由几个Node结构组成的。我们也都知道cpu访问本地内存速度当然要远远快于访问远端Node内存速度。所以相当于对内存和cpu进行绑定划分。这就是所谓的NUMA结构了。NUMA结构主要还是关于并行计算的高效处理:让处理器快速的访问在同一单元的内存,摆脱了传统的超大总线对多处理结构的束缚。
这里简单的理解起来就是:一Cpu核心或多个(可以是一个Vcpu或者多个)负责一段内存(达到极高的寻址命中率),不再管其他的内存。这样cpu在工作时只会负责形成Node的这段内存,不再负责远端(其他)内存。(这样即使你有多核心的Cpu也不用纠结于前端总线的限制。)
NUMA是硬件设计的功能,划分为NUMA节点在物理服务器的CPU和内存。当一个进程使用内存和CPU在同一NUMA节点,性能会大大提高。当一个进程需要更多的内存,但当前NUMA节点是完整的,那么它会得到从另一个NUMA节点的内存,而在这个过程中的性能成本,是可能影响该物理服务器上所有其他进程。
(想要了解更深:现代CPU确定NUMA节点界限
而Numa在这里来说最重要的用途是:提供内存互连的硬件系统,使新型动态的分区系统成为可能。系统分区的好处在于允许系统管理员在同一计算机内运行多个操作系统(如Unix和WindowsNT),并根据用户工作负荷的要求,在不同的操作系统环境间,简单的管理和使用CPU和内存资源,从而实现最佳的性能和最高的资源利用率。
那么hyper-v是怎么实现动态内存的?和这个Numa又是什么关系呢?先来看一张图片:
假设一台计算机使用Numa架构,Numa架构将这台计算机划分了四个节点,现在我们把一二节点拿出来创建Vm1&&三四节点拿出来创建Vm2。这里我们这样指定,但是hyper-v他是如何知道呢?而不会把节点的边界搞乱呢?我们理解起来就是是内部规范的()!因此hyper-V在运行时我们可以认为,宿主机会将Numa创建的这些节点动态分配来实现,而且我们用过hyper-v的都知道,动态内存只是指定一个范围,这样就好理解多了!创建虚拟机时,划分这些节点,哪台虚拟机需要更多的内存时就通过分配节点实现!也是为了避免Numa节点过多造成性能下降,因为不能跨越NUMA边界!
当你的虚拟机迁移到不同规格的主机时,会发生什么情况?原来的配置要被保存。虚拟机正在运行。它会采取原来的NUMA节点规模到新的主机,并利用它们。隐藏在vCPU的设置,可以自定义虚拟机的NUMA节点,以适应最小的NUMA节点的主机。这意味着,不同规格的主机之间实时迁移,虚拟机将不能跨NUMA边界(远程运行一个CPU上的进程是在一个NUMA节点分配的RAM)。
FROM:.cn/s/blog_1eg5b.html
阅读(...) 评论()用户名:xjsunjie
文章数:1086
评论数:2212
访问量:2935262
注册日期:
阅读量:1297
阅读量:3317
阅读量:585968
阅读量:471972
51CTO推荐博文
& && &说到服务器的NUMA架构,大家或许都知道。NUMA架构在中大型系统上一直非常盛行,也是高性能的解决方案,尤其在系统延迟方面表现都很优秀。但NUMA架构对服务器的相关性能到底有什么影响,怎样设置会更好呢?本文在此解析一下。& 1、什么是NUMA& NUMA(Non Uniform Memory Access Architecture)是一种用于多处理器的电脑记忆体设计,内存访问时间取决于处理器的内存位置。 在NUMA下,处理器访问它自己的本地存储器的速度比非本地存储器(存储器的地方到另一个处理器之间共享的处理器或存储器)快一些。& NUMA架构在逻辑上遵循对称多处理(SMP)架构。 它是在二十世纪九十年代被开发出来的,开发商包括Burruphs (优利系统), Convex Computer(惠普),意大利霍尼韦尔信息系统(HISI)的(后来的Group Bull),Silicon Graphics公司(后来的硅谷图形),Sequent电脑系统(后来的IBM),通用数据(EMC), Digital (后来的Compaq ,HP)。 这些公司研发的技术后来在类Unix操作系统中大放异彩,并在一定程度上运用到了Windows NT中。&&& NUMA 的主要优点是伸缩性。NUMA 体系结构在设计上已超越了 SMP 体系结构在伸缩性上的限制。通过 SMP,所有的内存访问都传递到相同的共享内存总线。这种方式非常适用于 CPU 数量相对较少的情况,但不适用于具有几十个甚至几百个 CPU 的情况,因为这些 CPU 会相互竞争对共享内存总线的访问。NUMA 通过限制任何一条内存总线上的 CPU 数量并依靠高速互连来连接各个节点,从而缓解了这些瓶颈状况。& 2、NUMA的几种架构方案& NUMA 系统通常比一致内存访问系统(UMA)更加经济且性能更高。一致内存访问系统必须平等地为所有 CPU 提供内存,而 NUMA 系统则能够为直接连接到 CPU 的内存提供高速互连,同时为与 CPU 相隔较远的内存提供较为便宜但更高延迟的连接。使用 NUMA 时,会经常遇到下面几种方案,以SQL SERVER数据库为例。(参阅technet资料)这是具有硬件 NUMA 和单个 SQL Server 实例的计算机中的默认设置。所有通信流量都通过一个单独的端口输入并采用循环方式分布到任何可用的 NUMA 节点。NUMA 增大了内存和 CPU 访问的区域并增加了 I/O 和惰性编写器线程的数量。在建立连接后会立即将其作用域限定为此节点。它提供了 NUMA 节点间的自动负载平衡。客户端应用程序可以连接到单个端口,而且可以轻松地进行部署。650) this.width=650;" src="https://i-technet.sec./dynimg/IC98217.gif" alt="连接使用任何 NUMA 节点。" />将一个端口关联到多个用于主要应用程序的硬件 NUMA 节点。将第二个端口关联到另一个用于第二个次要应用程序的硬件 NUMA 节点。用于这两个应用程序的内存和 CPU 资源量非常不平衡,用于主要应用程序的本地内存和 CPU 资源量是用于次要应用程序的三倍。次要应用程序可以是数据库引擎的第二个实例,它在同一数据库引擎实例中,甚至在同一数据库中提供次要的功能。通过向优先使用的连接提供额外资源,它提供了一种线程优先执行的方式。650) this.width=650;" src="https://i-technet.sec./dynimg/IC61780.gif" alt="一个端口连接到多个 NUMA 节点。" />可以将多个端口映射到同一 NUMA 节点。这样,您就可以为不同的端口配置不同的权限。例如,您可以通过控制对相应 TCP 端点的权限来严格限制由某个端口提供的访问。在此示例中,端口 1450 在 Intranet 上普遍可用。端口 1433 则设置为通过防火墙连接到 Internet,并对它的访问进行严格的限制。两个端口都可以充分、平等、安全地利用 NUMA。650) this.width=650;" src="https://i-technet.sec./dynimg/IC83326.gif" alt="多个端口连接到所有可用的 NUMA 节点" />& 3、如何设置,遵循什么原则& 那么在虚拟化场景中,如何设置NUMA呢?原则是什么?&&& 例如一台配置了两颗八核处理器以及128GB内存的服务器,我们需要在其上分配CPU和内存资源并划分虚机。& 首先在NUMA架构中,每个处理器能够控制64GB的物理内存,每个处理器的八个核心中的每个核心将对应一个8GB的NUMA节点。这将会如何影响虚拟机性能?由于每个处理器核心访问NUMA节点内内存的速度要比其他节点快,因此当虚拟机内存大小少于或者等于NUMA节点的内存大小时,虚拟机在理论上能够获得最好的性能。如果给虚拟机分配更多的内存,则虚拟机必然要访问其NUMA节点之外的部分内存,这样或多或少会影响其性能。如果应用能够感知NUMA,那就更好了。vSphere使用vNUMA可以创建能够感知NUMA的虚拟机。该虚拟机将会被分割为虚拟NUMA节点,每个vNUMA节点将会被放置到一个不同的物理NUMA节点。尽管虚拟机仍旧在两个NUMA节点之间扩展,但虚拟机内的操作系统和应用能够感知NUMA,资源使用将会得到优化。& NUMA现已经对在数据中心服务器上安装及选择内存的方式带来了很多改变。在给服务器增加物理内存时,我们需要注意增加的内存要在NUMA节点之间进行平衡及匹配以使主板上的每个处理器拥有相同的内存。如果在我们所举例的服务器上配置更多的内存,那么必须在处理器之间平衡这些内存模块。如果增加64GB的内存,那么每个处理器将分配到32GB的内存(每个处理器可支配的内存将增加到96GB,服务器总内存数将达到192GB),每个NUMA节点的内存大小将从8GB增加到12GB。由于每个Socket控制的内存插槽是不同的,因此要确保内存插槽是均匀的。例如192G内存分为12个16G的内存条,那么应该4个插在一个Socket的内存插槽中,另8个插在另两个socket的内存插槽中。在为虚机分配vCPU资源时,也尽可能按照Socket/Core的倍数分配,比如1X1, 1X2, 1X 4, 1X8, 2X1, 2X2, 2X4, 2X8等组合,但不要使用2X3, 2X5, 2X7这种组合。后面的组合会引起跨Socket的内存调用,从而容易导致性能下降。&&结合实践,不同的业务对内存会有不同的要求,但最好不要跨NUMA单元去进行调用,尽可能的使每个CPU访问它的直连内存单元。遵循这些简单的原则,就会使性能更好。本文出自 “” 博客,请务必保留此出处
了这篇文章
类别:┆阅读(0)┆评论(0)用户名:liangzhuoting
文章数:15
评论数:15
访问量:23599
注册日期:
阅读量:1297
阅读量:3317
阅读量:585968
阅读量:471972
51CTO推荐博文
Technorati 标记: ,,
在新的Windows 2012 Hyper-V 3.0 中,Hyper-V可以在虚拟机级别提供对NUMA架构的支持,NUMA架构在中大型系统上一直非常盛行,也是高性能的解决方案,在系统延迟方面表现都很优秀。NUMA 系统通常是多处理器系统,其中的内存延迟随访问它的处理器不同而有所不同。内存被分成多个节点,CPU 和节点之间的延迟可能各不相同,并且每个 CPU 都被视为它可最快访问的那个节点的一部分。如果大家对NUMA不太认识,可以先对NUMA 结构认识认识。
以下是Windows 2012 Hyper-V 3.0 中 对虚拟机NUMA结构支持截图
可以根据实际使用对虚拟机进行调整,从而大大的提高虚拟机的性能,也可以使用硬件拓扑,即与物理机保持一样的硬件拓扑,不会使物理机超出负载。本文出自 “” 博客,请务必保留此出处
了这篇文章
类别:┆阅读(0)┆评论(0)用户名:徐庭
文章数:126
评论数:115
访问量:233392
注册日期:
阅读量:1297
阅读量:3317
阅读量:585968
阅读量:471972
51CTO推荐博文
Windows Server 2012 R2 Hyper-V 现已支持虚拟机内部的 NUMA,即非一致内存访问。NUMA 是一种多处理器系统计算机架构,这种架构下处理器访问内存所需的时间取决于内存与处理器的相对位置。通过使用 NUMA,处理器可用比访问远程内存(属于系统中其他处理器的内存)更快的速度访问本地内存(直接连接到该处理器的内存)。现代化操作系统与 SQL Server 等高性能应用程序在开发过程中就针对系统的 NUMA 拓扑进行了优化,会在线程调度或内存分配时考虑到 NUMA 的存在,借此改善性能。通过将虚拟 NUMA 拓扑投射到虚拟机内部,能在大规模虚拟机环境中实现更优化的性能与负载扩展性。这样做可以让来宾操作系统与 SQL Server 等应用程序,或 Windows Web Server,即 IIS 充分利用 NUMA 优化性能。投射给 Hyper-V 虚拟机的默认虚拟 NUMA 拓扑通过优化可与宿主机的 NUMA 拓扑保持一致,如下图所示为客户机NUMA 拓扑默认与主机的 NUMA 拓扑匹配。来宾 NUMA 确保可感知 NUMA 的重要负载能获得最佳性能,并充分利用底层硬件的性能与硬件本身的能力,通过硬件、软件,及应用程序领域的投资获得最大化收益。运行 SQL 与 IIS 的客户将通过来宾 NUMA 获得大量收益。Microsoft SQL Server 2012 与 Windows Server 2012 中的 Internet Information Services(IIS) (IIS) 8 等高性能应用程序可感知 NUMA,相比在不支持 NUMA 的平台和虚拟机中运行的虚拟化实例,可极大改善性能。对来宾 NUMA 的支持还可用于使用 Windows Server 2012 故障转移群集搭建的高可用解决方案。故障转移群集会在移动虚拟机前评估节点 NUMA 配置,确保目标节点能良好支持虚拟机中运行的负载。如果将虚拟机配置为使用动态内存,则只有一个虚拟NUMA节点(即扁平 NUMA 拓扑)投射进来宾系统,实际上就禁用了虚拟NUMA支持。使用以下命令查看主机系统是否基于NUMA1. 登陆Hyper-V服务器,打开Hyper-V管理器,右侧操作区选择Hyper-V设置2. Hyper-V设置页面选择NUMA跨越,勾选“允许虚拟机节点”通过PowerShell 命令来设置允许虚拟机跨越物理NUMA 节点的命令如下:Set-VMHost -NumaSpanningEnabled $true当在Hyper-V主机中设置启用NUMA后,会影响运行 Hyper-V 的服务器上的所有虚拟机。当主机上的内存不足以在在虚拟 NUMA 节点和主机的物理 NUMA 节点之间执行最佳映射时,NUMA 跨越设置可确定虚拟机行为。此设置会影响以下虚拟机操作:启动、还原与迁移。当 NUMA 跨越处于启用状态,并且由于内存限制,必须在两个或多个物理 NUMA 节点之间拆分一个或多个虚拟 NUMA 节点时,仍然允许启动虚拟机或将其还原或迁移到其他主机。但是,此拆分将导致在虚拟和物理 NUMA 节点之间执行非最佳映射。NUMA 感知工作负载甚至也可能以非最佳方式执行;例如,虚拟机内显示为本地的内存访问实际上在主机的物理 NUMA 拓扑上可能变为远程。此外,因为将虚拟 NUMA 节点映射到物理 NUMA 节点可能会根据启动虚拟机时的内存可用性而有所不同,因此每次重新启动虚拟机后的性能可能不一致。在以下情况中,可能会执行虚拟 NUMA 到物理 NUMA 的拆分:1) 配置虚拟机时使用的虚拟 NUMA 节点大于主机的物理 NUMA 节点。这可能是由手动配置虚拟机的 NUMA 设置导致的,或者是因为虚拟机最初在运行 Hyper-V 的服务器上创建,然后移动到具有不同物理 NUMA 拓扑的服务器。2) 当前在物理 NUMA 节点上分配可用内存需要至少一个虚拟 NUMA 节点受到多个物理 NUMA 节点上的内存支持。可用内存分配不均可能由其他虚拟机的内存使用情况或主计算机系统导致。当 NUMA 跨越处于禁用状态时,如果强制虚拟机在两个或多个物理 NUMA 节点之间拆分虚拟 NUMA 节点,则 Hyper-V 将不会启动、还原或接受虚拟机的实时迁移。这可确保始终以最佳性能运行虚拟机。每个虚拟 NUMA 节点都由一个物理 NUMA 节点支持,并且虚拟 NUMA 拓扑与物理服务器的 NUMA 拓扑完全一致。建议始终需要最佳性能的 NUMA 感知工作负载使用此设置,但它可能导致虚拟机无法启动、还原或迁移。启用或禁用 NUMA 跨越的优点和缺点NUMA跨越优点缺点启用虚拟机可以利用在主机上提供的任何内存,而不考虑跨物理 NUMA 节点的分配。将启动虚拟机,而不考虑其虚拟 NUMA 拓扑,即使它与主机的物理 NUMA 拓扑不一致也是如此。虚拟机性能在每次虚拟机重新启动后可能有所不同。虚拟 NUMA 一致性在每次启动后可能有所不同。NUMA 感知工作负载可能不会以最佳方式执行,因为虚拟 NUMA 拓扑可能与物理 NUMA 拓扑不一致。禁用NUMA 感知工作负载能够以最佳方式执行,因为虚拟 NUMA 拓扑与物理 NUMA 拓扑一致。虚拟机性能在每次重新启动后保持一致。如果任何虚拟 NUMA 节点无法完全放置在单个物理 NUMA 节点内,虚拟机将无法启动。如果虚拟机的虚拟 NUMA 拓扑未配置为与目标主机的物理 NUMA 拓扑一致,则可能无法将虚拟机迁移到给定主机。启用了动态内存的虚拟机使用的处理器或内存不能多于单个物理 NUMA 节点中提供的数量。虚拟NUMA若要支持虚拟化较大的扩展工作负载,Windows Server 2012 中的 Hyper-V 将提供扩展的虚拟机扩展限制。最多可以向单个虚拟机分配 64 个虚拟处理器和 1 TB 的内存。在创建更大的虚拟机时,可能会使用主机系统上多个 NUMA 节点中的内存。在此类虚拟机配置中,如果虚拟处理器和内存继续从单个 NUMA 节点中进行分配,则工作负载将不会利用 NUMA 优化功能,并且性能将会降低。在 Windows Server 2012 中,Hyper-V 将向虚拟机提供虚拟 NUMA 拓扑。在默认情况下,将优化此虚拟 NUMA 拓扑以匹配基础主计算机的 NUMA 拓扑。通过在虚拟机中公开虚拟 NUMA 拓扑,可允许来宾操作系统以及在其中运行的任何 NUMA 感知应用程序利用 NUMA 性能优化,就像在物理计算机上运行时的行为一样。从工作负载的角度来看,虚拟和物理 NUMA 之间没有区别。在虚拟机中,当工作负载为数据分配本地内存并在同一个 NUMA 节点中访问该数据时,将在基础物理系统上快速访问本地内存结果。可成功避免由于远程内存访问而引起的性能损失。右键虚拟机,选择设置,展开处理器,,点击NUMA本文出自 “” 博客,请务必保留此出处
了这篇文章
类别:┆阅读(0)┆评论(0)
本文收录至博客专题:《》

我要回帖

更多关于 技术中心组织架构图 的文章

 

随机推荐