我得到了一台 x64 Windows 2003 服务器,并在其上安装了 M$ Virtual server 2005 R2。然后我创建了一个运行 Server 2008 R2 的映像。它运行非常慢,所以我仔细研究了事件日志,最终找到了这篇文章:http://support.microsoft.com/kb/925477。
我已进入主机服务器的 BIOS,将内存操作模式更改为优化器模式,并将节点交错更改为启用。令人高兴的是,客户操作系统现在运行速度大大加快(在我看来,没有进行真正的具体测试)。
这就是设置,我的问题很简单。我刚才做了什么?我读的内存管理文档越多,我理解的就越少。有人能解释一下内存操作模式是什么以及不同设置的真正含义吗?
答案1
看起来你那里有一台戴尔服务器!一些文档:
http://support.dell.com/support/edocs/systems/pem/en/hom/html/syssetup.htm
优化模式:“设置为优化模式时,两个内存控制器以并行 64 位模式运行,以提高内存性能。
内存交叉:如果设置为“禁用”(默认),则采用 NUMA。如果设置为“启用”,则实现内存交叉。
使用这些设置可以做两件事:
- 配置内存控制器以提高并行性。
- 配置内存以不使用 NUMA(特定于处理器的内存组),而是将所有内存用作本地内存。
这对你可能来说有点阿拉姆语,所以先介绍一下它的含义。新服务器配置了每个处理器的内存库,允许使用所谓的 NUMA(非统一内存架构(关联))。这允许各个处理器拥有不同数量的本地内存,并允许操作系统(如果它支持 NUMA)构建正在运行的进程以利用每个处理器的本地内存。
简单举个例子,以双四核服务器为例。每个四核处理器都有 8GB 的 RAM,系统总共有 16GB。在 NUMA 系统中,操作系统知道在一个四核处理器上运行的进程具有本地内存(更快的提取),并且在一个处理器上的各个核心之间移动进程不会影响内存访问速度。它还知道,如果一个进程必须访问另一个处理器的本地内存库上的内存,则需要花费一定的时间。
您对 BIOS 设置所做的操作实际上是关闭 NUMA。交叉内存意味着内存处理器亲和性不会保留,因此所有内存访问都将很昂贵。这可以通过打开优化器模式来补偿,这意味着可以处理内存访问在平行下这样交叉存储器的服务速度将比串行访问快得多。
我希望这有帮助。
答案2
我认为上面的帖子混淆了“内存交错”和“节点交错”......
节点交错禁用系统的 NUMA 架构属性。此平台支持的所有操作系统均支持 NUMA 架构。在大多数情况下,您可以通过禁用节点交错来获得最佳性能。启用此选项后,内存地址将交错在每个处理器安装的内存中,某些工作负载的性能可能会得到改善。