案例研究:在 HP Proliant DL980 G7 8 处理器套接字系统上缩放 IIS 8

Microsoft 提供

本白皮书汇编了 HP 与 IIS 产品团队共同努力的结果,以评估在 HP 8 向系统上运行的 IIS 的性能功能。 此白皮书还可用作客户在此类系统上配置 IIS 的部署指南。

摘要:本案例研究介绍如何在 HP 的 8 路系统上部署和优化 Microsoft IIS 8.0 服务器。

作者:Hewlett-Packard (HP)、IIS 产品组 (IIS)、Microsoft 企业工程中心 (EEC)

介绍

Web 服务器工作负荷通常与横向扩展模型中的商品服务器相关联。 需要额外的处理能力时,会将额外的计算机添加到池中。 这是一个非常常见的模型,Microsoft Internet Information Services (IIS) 具有多种功能,使这种方法易于配置和部署。

通常,纵向扩展模型与其他工作负荷相关联,例如:SQL Server。 不过,现实情况是,在 Windows Server 2012 发布期间,在 IIS 基础结构中进行了多项投资,以更好地启用纵向扩展模型。 由于此类投资,可以采用利用此类大型服务器的所有特征的方式部署 IIS 8.0。 这样,客户就可以释放此类计算机的所有功率和可靠性。

作为 Windows Server 2012 开发周期的一部分,进行了一系列性能测试,以描述 IIS 工作负载的性能。 这些测试是在 HP DL980 G7 上使用 Microsoft 企业工程中心 (EEC) 的设施进行的,这是 Microsoft 适用于 Windows Server 的客户验证设施。

本白皮书汇编了 HP 与 IIS 产品团队共同努力的结果,以评估在 HP 8 向系统上运行的 IIS 的性能功能。 此白皮书还可用作客户在此类系统上配置 IIS 的部署指南。

客户问题

一般来说,增加核心数应提高性能。 当 IIS 客户使用 Windows Server 2008 R2 在非一致性内存访问 (NUMA) 感知硬件上部署其应用程序时,他们注意到,在某些点之后,核心数增加会导致性能下降。 之所以发生这种情况,是因为软件内存同步的成本超出了 NUMA 硬件上其他核心的优势。 Windows Server 2012 中的 IIS 8.0 通过智能分配 NUMA 硬件上进程的线程相关性来解决此问题,此概念证明允许识别操作系统和网络 IO 优化,以确保 IIS 8.0 最佳可伸缩性。

IIS 8.0

Windows Server 2012 上的 Internet Information Services (IIS) 可识别 NUMA,并为 IT 管理员提供最佳配置。 以下部分介绍了 IIS 8.0 如何利用 NUMA 硬件来提供最佳性能。

IIS 支持通过以下两种方式对工作负荷进行分区:

  1. 在一个应用程序池(即 Web 花园)中运行多个工作进程。
    如果使用此模式,则默认情况下,应用程序池配置为在单个工作进程中运行。 为了获得最佳性能,应考虑运行与 NUMA 节点相同的工作进程数,以便工作进程和 NUMA 节点之间存在 1:1 关联。 这可以通过将“最大工作进程数” AppPool 设置设置为 0 来完成。 配置此设置后,IIS 将确定硬件上有多少 NUMA 节点可用,并将启动相同数量的工作进程。
  2. 在单个工作负荷/站点中运行多个应用程序池。
    在此配置中,工作负荷/站点划分为多个应用程序池。 例如,站点可能包含配置为在单独的应用程序池中运行的多个应用程序。 实际上,此配置会导致为工作负荷/站点运行多个 IIS 工作进程,IIS 智能地分配进程相关性,以实现最佳性能。

根据工作负荷,管理员将工作负荷分区为多个工作进程。 正确分区工作负荷后,IIS 8.0 在 IIS 工作进程即将启动时标识最佳 NUMA 节点。 默认情况下,IIS 会选取具有最可用内存的 NUMA 节点。 IIS 了解每个 NUMA 节点的内存消耗情况,并使用此信息对 IIS 工作进程进行“负载均衡”。 此选项不同于 Windows 默认设置的轮循机制,专为 IIS 工作负荷而设计。

最后,可通过两种不同的方式为从 IIS 工作进程到 NUMA 节点的线程配置相关性。

  1. 软相关性(默认值)
    使用软相关性时,如果其他 NUMA 节点具有可用周期,则来自 IIS 工作进程的线程可能会计划到未配置为关联的 NUMA 节点。 此方法有助于将系统上的所有可用资源最大化。
  2. 硬相关性
    具有硬相关性,无论负载在系统上的其他 NUMA 节点上是什么;IIS 工作进程中的所有线程都分配到使用上述设计为相关性选择的所选 NUMA 节点。

尽管硬相关性可以提供更好的整体性能,但设置硬相关性需要更多配置和更深入的硬件理解。 此外,如果配置不当,也会导致性能不佳。 因此,默认配置为软相关性。

HP 平台

HP DL980 G7 的背景

DL980 G7 是第一台具有 8 个处理器套接字的 HP Proliant 纵向扩展服务器,它使用 HP PREMA 体系结构将节点控制器与智能 CPU 缓存和冗余系统结构合并在一起。 DL980 G7 服务器的第一次迭代使用了 Intel® Xeon® 处理器 7500/6500 系列(即 Nehalem-EX)处理器(4 核、6 核和 8 核 SKU)、128 个 DIMM 套接字和 16 个 PCIe 插槽。 第二个版本支持 Intel® Xeon® 处理器 E7-8800/4800/2800(即 Westmere-EX)处理器(最高为 10 核 SKU)。 通过具有 8 个处理器的当前 Intel Nehalem-EX 配置,每个处理器都有 8 核,并且启用了超线程处理,Windows Server 2008 R2 总共支持 128 个逻辑处理器,最大 OS 支持 2TB RAM 和 16 个 PCIe 槽。 启用 Intel Westmere-EX 10 核 SKU 处理器和超线程处理后,Windows Server 2008 R2 一共为 DL980 G7 启用 160 个逻辑处理器。 现在,Windows Server 2012 支持此平台支持的 4TB RAM。

具有 HP 可伸缩性节点控制器的这些 8 向 Intel 服务器的性能和可伸缩性功能超过了以前在 Intel/AMD 上存在的一切,并且满足或超过许多 UNIX 平台的性能,因此价格比 UNIX 平台低得多。 此外,根据 Gartner 和其他行业分析师的数据,这些新的 Nehalem-EX 和 Westmere-EX 在 R.A.S 功能集方面与 UNIX 平台的奇偶一致。

HP DL980 的安装和配置与早期更简单的 SMP 服务器在很多方面不同:

  • HBA 和网络卡等 PCIe 卡的放置至关重要
  • 设备驱动程序必须是 Windows KGROUP 感知和 NUMA 感知

虽然 Windows Server 2012 对纵向扩展服务器的支持得到了很大的改进,但对于以前的 Windows 操作系统版本和应用程序来说,必须是正确的版本和修补程序,才能在 DL980 G7 平台上得到完全支持和缩放。

由于 Windows x64 Server 及其用户工作负载利用具有 8 个或更多套接字的配置,不正确的配置或使用这些平台(如 HP DL980 G7)可能会导致严重的性能损失。 使用此 8 处理器配置时,不正确的设备驱动程序或非 NUMA 感知应用程序可能无法提供用户可能期望的可伸缩性提升。 可能发生的典型问题包括淹没 QPI、IO 中心和 PREMA 芯片集互连的非可缩放事务

Microsoft SQL Server、SAP 和 IIS 团队在 DL980 G7 上广泛测试、部署和基准测试其产品,并取得了出色的效果。 HP DL980 G7 和其他 8 处理器系统作为数据库服务器表现出了出色的结果,但现在也作为 Internet 信息服务器

下图演示了 DL980 G7 块图,在遵循以下段落中显示的不同配置选项和优化时,它为读者提供了方便:

Diagram of the D L 980 G 7 configuration.

配置选项

DL980 G7 提供各种配置:4 和 8 个处理器套接字模型可用。 此外,PCI 扩展槽有多个不同的配置。 这些文档记录在 DL980 的 HP 技术参考指南

在本文档中,我们将参考处理器,了解 Windows 如何识别和描述它们:处理器 0 - 7 和 NUMA 节点 0 - 7。

Photo of the upper and lower processor trays on the D L 980 G 7.

DL980 G7 有两个“托盘”。 上部托盘包含处理器 0-3,直接控制主板和子 IO 板。 下托盘包含处理器 4-7,并控制“选项”或低配置文件 (LP) IO 板。

DL980 G7 有三个 IO 板:

Diagram of the I/O expansion slot options on the D L 980 G 7.

  1. 主 PCI 板 - 直接连接到处理器 0-1,此板提供 5x PCIe Gen 2 IO 插槽[2 (x8) 和 3 (x4) 电气连接器],适用于高带宽 PCI 设备(如全高 HBA、NIC 和 FusionIO/SSD 卡)。它还连接嵌入式设备,如 LAN On 主板(LOM -NC375i)、视频、内部磁盘控制器(智能阵列 P410i),SATA DVD,USB 端口,……
  2. 子 IO PCI 板(可选) - 直接连接到处理器 2-3,此板提供 5 个 PCIe Gen2 插槽[4 (x8) 和 1 (x4) 电气连接器]和 1 PCIe Gen 1 (x4) - 槽 ID 1 - (可选为 PCI-X 槽 - 不建议),适合全高带宽设备。
  3. 低配置文件 (LP) IO 板 - 直接连接到处理器 4-5,此板提供 4 x PCIe x8 和 1 x PCIe x4 插槽。 这些槽只有半高度,最新的网络和 HBA 卡附带低调括号,可以替换标准插槽,以适应半高度槽。

RAM

DL980 G7 具有极其强大的处理器,每个处理器包含 2 个内存控制器,正确配置时能够处理大量 IO 吞吐量。 平台已配置,因此内存访问均匀分布在每个处理器的两个内存控制器中。 为了确保“均衡的”系统设计,我们建议至少使用 512GB RAM,在 2011 年 5 月,部署的 RAM 为 1TB。 由于 RAM 不足,拥有小于 512GB-1TB RAM 的 DL980 G7 可能永远无法利用非常强大的处理器。 由于此 Windows 操作系统版本中 IO NUMA 感知增强和 NUMA 缩放改进,大多数客户都将观察到 IOPS 大幅下降,以及 Windows Server 2012 中的 IO 和缩放性能大幅提高。

请注意以下内存配置事实:

  • 仅 DDR3 DIMM。

  • 每个处理器连接到 2 个内存上升器,每个上升器支持 1 个内存控制器和 8 个 DIMM 连接器。

  • 仅支持已注册的 DIMM (RDIMM)。 不支持无缓冲区 DIMM (UDIMM)。

    • 仅 Westmere-EX 处理器支持 LR 或 DDR3L。
  • 支持单排名 (SR)、双排名 (DR) 和四级 (QR) DIMM 模块

  • Nehalem-EX 处理器支持 1 GB 和 2 GB DRAM 技术,Westmere-EX 处理器也支持 4 GB。

  • DIMM 添加到 2 个内存控制器的象限中。

  • 支持高级 ECC、联机排名备用和镜像。

  • 内存 ECC 支持包括 x4 和 x8 芯片故障的更正。

网络

  • 建议将千兆位网络适配器作为标准。 1 千兆位网络适配器很可能成为这些强大系统上的瓶颈。
  • 减少实现所需网络性能所需的网络适配器总数。
  • 10 千兆位网络适配器显著提高了设备驱动程序和设备驱动程序的配置选项。
  • HP 10Gb NC550SFP (Intel) 网络卡已经过测试,并证明具有非常高的性能;它要求主或子 IO 板上的 PCIe x8 槽达到完全性能。
  • HP DL980s 支持多达 4 个 10GbE NIC,例如 NC550SFP 和 NC523SFP(请参阅 HP DL980 快速规范文档以获取最新信息),总共有 8 个 10GbE 端口。
  • 出于负载均衡目的,可以在主和子 IO 板之间均衡 10 千兆位卡。 (例如:主板上有 2 个双端口 10G NIC,子 IO 板上有 2 个双端口 10G)。
  • 正如读者将在 IIS 缩放论文中意识到的,建议在更现代的网络适配器和新式设备驱动程序上启用接收方缩放 (RSS)。 1 千兆位网络适配器通常仅支持最多 8 个 RSS“通道”或“队列”。 10 千兆位适配器至少支持 16 个通道/队列。 接收端缩放是平衡跨多个逻辑处理器的 DPC 卸载的机制。 这可以避免在极高网络活动期间出现的问题,即仅在一个处理器上看到高内核时间(通常是逻辑处理器 0 或 1,但并非总是如此)。 注意:Windows Server 2008 R2 的 RSS 实现仅涵盖第一个 Windows KGROUP 处理器 (KGROUP#0) 中的逻辑处理器,但在首次安装时,此限制移除,Windows Server 2012 和几个收件箱驱动程序支持它。

HBA 和 IO

  • 对于高存储 IO 应用程序,安装至少 2 x 双端口 HBA,更常见的配置是 4 x 双端口 HBA。
  • 所有 HBA 端口都已连接,且处于活动状态,这一点很重要。 如果必须正确安装和配置 mul MPIO 软件。 对于 HP EVA 系列 SAN,建议使用自动负载均衡 (ALB)。
  • 不同的 HBA 具有不同的设置,不同的 SAN 模型具有不同的功能,但作为一般指南,建议:
  • Emulex - 在大多数配置中的“OC 管理器/HBA 随处”中将 HBA 队列深度设置为大约 64-254
  • QLogic - 在“SanSurfer”中将执行限制设置为 64-96
  • Brocade - 队列深度记录在 Brocade 管理员指南
  • 应根据 PCIe 接口特征将所有 3 个 IO 中心之间分布 HBA 卡。 我们始终倾向于将支持 x8 的卡置于 x8 槽中,以便从其完整功能中获益,并在整个系统中平衡负载。

FusionIO 设备上的特别说明(通常适用于其他 SSD 卡):

FusionIO(HP IO 加速器板)和 OCZ 提供超快的访问(比机械磁盘快 10,000 倍)。 到目前为止,仅使用 FusionIO 卡进行了广泛的测试。 提供了以下异常的结果:

  • 至少使用 FusionIO 2.2.3 或更高版本的设备驱动程序 - K 组感知(可从 FusionIO 网站获取)。

  • 仅将 FusionIO 卡放在主板或子 IO 板上:它们不是低配置卡。 建议的 IO 槽为:3、5、9 和 11。

  • 如果使用超过 4 个 HP IO 加速器,则必须在 BIOS 中进行修改,以便进行更多冷却,并且必须考虑外部电源线或使用 VSL 3.x 的 FusionIO 电源替代功能,并允许从 PCIe 插槽获得额外的电源。

  • 当前的 FusionIO 堆栈仍需要可伸缩性改进,FusionIO 仍在处理它们。 同时,请注意,在此系统中拥有大量 Fusion IO 卡,我们已推送了 100 多万个 IOP,超过 16GB/秒。 在当前的 FusionIO 驱动程序实现中,你可能会发现:

    • 逻辑处理器子集的处理器利用率非常高。 这与当前 FusionIO HBA 不支持 MSI-X 以及每个 HBA 向单个逻辑处理器发送中断这一事实有关。 此外,当前实现仅支持每个 HBA 的 DPC 和 FusionIO 完成工作线程。 对于高度苛刻的缩放 IO 工作负荷,用户几乎需要通过检查这些特定逻辑处理器上的 CPU 利用率为 100% 或近 100%,以识别这些逻辑处理器。 FusionIO 已提供配置参数,以便通过允许为这些任务指定专用的逻辑处理器来部分缓解这一点。 在这些高 IO cputimes 中,可以在应用程序级别设置关联掩码,以避免这些逻辑处理器。
    • IO 吞吐量不平衡。 通过在运行 FusionIO 完成线程的同一套接字上生成读/写请求来获得最佳 IO 性能。 DL980 G7 BIOS 为 Windows 操作系统及其 IO 组件提供 IO NUMAness:storport 和 ndis/netio,以便其微型端口使用和优化。
    • 由于整理 SSD 的影响,吞吐量修改,前几代和当前代 SSD 出现问题。

BIOS

建议在 DL980 G7 BIOS for IIS 中更改以下默认值:

设置名称 建议设置 默认设置
HP 电源配置 自定义 (默认均衡电源和性能)
HP 电源监管机构 OS 控制模式 (默认 HP 动态节能模式)
处理器 HyperThreading 请参阅以下段落,了解 IIS 8.0 工作负荷的类型以及 HyperThreading 的影响 Enabled
最小处理器空闲 Pwr 状态 无 C 状态(无处理器电源增益)或 C1e(仍可获得处理器电源增益和足够性能) (默认 C6 状态)
内存电源上限 已禁用 (默认值为“已启用”)
协作电源控制 已禁用 (默认值为“已启用”)
MPS 表模式 完整表 APIC (默认值)
地址模式 44 位 Enabled (默认值为“已禁用”)
热配置 如果使用大量的 HP IO 加速器/融合 IO HBA,增加冷却甚至“最大风扇 -(井喷)”。 (最佳冷却)
Windows 调试:ASR 状态(未附加调试器时禁用) 如果附加 OS 调试器,则禁用。 (默认值为“已启用”)
Windows 调试:iLO Cli(来自 iLO 会话) 如果附加 OS 调试器,则禁用。 (默认值为“已启用”)

借助 DL980 G7 平台,Windows Server 2012 将在 x2APIC 模式下自动切换处理器和 IOH,并使用物理中断传送模式。 若要在 Windows Server 2008 R2 SP1 中启用 x2APIC 以提高 IO 缩放能力,必须在平台上安装多个 Windows FTE,以及要执行的其他 Opt-In BCDEDIT 命令。 Microsoft 知识数据库中提供了启用 x2APIC 和 QFE 规范

固件

关键是以下组件的固件更新为最新版,例如,2012 年 10 月版本中添加了许多 IO NUMA 改进。

  • DL980 G7 系统
  • HBA 卡
  • 网卡
  • FusionIO 卡(如果使用)

强烈建议在 HP DL980 支持网站上验证这些组件的固件。

Windows 版本和配置

作为 Windows 客户的任务关键产品/服务的一部分,HP 具有一个智能更新 QFE CD,用于使用最新的关键 Microsoft QFE 自动设置和优化 Windows:https://www.hpe.com/us/en/servers/smart-update.html。 这些更新和优化已在 Microsoft 中实施,并在 HP DL980 实验室中进行验证。 HP 建议其客户执行这些更新。

  • Windows Server 2012 - 内核模式、缓存管理、请求和连接管理和用户模式的 IIS 设置未从 Windows Server 2008 R2 更改,请参阅 Windows Server 2008 R2 性能优化指南文档中所述的 IIS 特定优化。 。
  • 对于 Windows 2008 R2,建议使用 SP1 或更高版本。 Service Pack 1 包含许多关键性能修复,用于 > 64 个逻辑处理器支持。
  • Windows 2008 无法正确支持 44 位寻址,不应安装在 DL980 G7 上。 如果出于某种原因,必须在 DL980 上部署 Windows 2008(非 R2 版本)时,必须禁用超线程和 44 位内存,则系统将限制为 64 个逻辑处理器和 1 TB RAM。 Windows Server 2008 SP2 是 HP DL980 G7 上唯一受支持的 Windows Server 2008 Server 版本。 如果仍需要 Windows Server 2008,请参阅 HP 支持网站和组织,了解 HP DL980 G7 上 Windows Server 2008 SP2 的 Windows QFE 的完整列表。

测试方法

测试方案

此测试的目标是测试 IIS 服务器的可伸缩性,同时增加 NUMA 感知硬件上的 CPU 核心/套接字数:

  • 简单的 ASP.net 动态测试页用作网站内容
  • Web 容量分析工具 (WCAT) 用于生成 HTTP 请求
  • HP Core Disable 实用工具用于通过禁用 CPU 核心和套接字来缩减服务器,同时遵循 IO 配置

测试环境演示如何使用运行 IIS 8.0 的 NUMA 硬件在服务器上缩放 ASP.NET Web 应用程序。 目标是强调服务器,以确定部署在 100%(或接近)的 CPU 使用率时每秒处理的请求数。

以下配置用于测量 IIS 性能

  1. Web 花园 (1xN) - 单个应用程序池,每个套接字一个进程。 这表示单个应用程序需要纵向扩展的企业方案。
  2. 托管 (Nx1) - 每个套接字一个应用程序池,每个应用程序池一个进程。 这表示托管方案,其中多个应用程序托管在单个服务器上。
  3. 默认值(1x1) - 无论套接字数如何,一个应用程序池和一个进程。 这表示现用的配置。

对 20/40/80 核重复测试(2/4/8 处理器套接字)。 我们还对 180 核(已启用超线程处理)进行了额外的测试,了解 IIS 如何受益于 HT。

测试设置

服务器

共有 6 台计算机用于进行测试

  • 充当 WCAT 客户端的 4 台计算机(WCAT 设置:每个物理客户端 100 个虚拟客户端)
  • 1 台计算机作为 WCAT 控制器工作
  • 1 HP9L980G7 为 IIS 8.0 服务器

网络

测试环境是使用四台客户端计算机和一台服务器设置的。 每个客户端计算机都使用了四个 1 Gb NIC。 服务器使用了 16 个 1 Gb NIC。 配置了 16 个子网,将每个客户端 NIC 与唯一的服务器 NIC 配对。

RSS 设置

服务器上的网络性能已使用 RSS 设置进行了优化。

为了确保给定 NIC 上收到的流量将由 NIC 所在的同一 IO 中心的核心处理,每个 NIC 都使用 NumaNode 设置与同一 IO 中心上的 NUMA 节点相关联。

所有 NIC 中的 RSS 队列总数等于计算机上的逻辑处理器总数。 为此,为每个 NIC 设置 NumberOfReceiveQueues。

然后,每个 NIC 上的 RSS 队列使用 BaseProcessorNumber 和 MaxProcessors 的设置映射到其分配的 NUMA 节点上的特定内核集。

调查结果

下图捕获了 IIS 性能(每秒处理的请求数)如何随着 CPU 核心的增加而变化。

CPU 核心数从 20 增加到 40(2 个套接字到 4 个套接字):

20 个核心数作为基线。 当 CPU 数从 20 增加到 40 时,我们发现 Web 托管方案中处理的请求增加了 67%,Web 花园方案增加了 41%,默认方案减少了 2%。 这表示托管和 Web 花园方案都能够充分利用 CPU 核心的增加。 默认配置无法利用增加的 CPU,因为单个进程无法缩放以利用 NUMA 硬件。

80 个核心和 40 个核心之间的比较

在核心数从 40 增加到 80 后,人们注意到了类似的趋势。 托管方案能够处理的请求数增加 64%,Web 花园方案处理的请求数增加 31%。 默认配置性能进一步降低 3%。

A column chart comparing R P S scaling between C P U cores with 80 versus 40 cores.

超线程的影响

启用超线程后,托管配置处理的请求数增加 18%。 Web Garden 配置处理的请求数增加 4%,而默认配置处理的请求数增加 3%。 通常 HT 可能会导致性能提高 20%。 托管配置能够充分利用 HT。

A column chart comparing the results of enabling Hyperthreading.

总结

IIS 8.0 可识别 NUMA 硬件,并且与以前的 IIS 版本不同,能够在 NUMA 硬件上积极缩放。

IIS 8.0 吞吐量在将 CPU 套接字从 2 增加到 4 时增加了 67%,在将 CPU 套接字从 4 增加到 8 时,它进一步增加了 64%。 启用超线程会导致额外的 18% 吞吐量。

HP Proliant DL980-G7 提供了一个坚实的平台,用于部署高要求 IIS 应用程序,并在具有更高 HW 可靠性、可用性和可服务性的平台上,利用服务器合并解决方案提供应用程序可伸缩性。

希望缩放 IIS 部署的客户应考虑在 NUMA 感知硬件上部署 IIS,并受益于纵向扩展和横向扩展选项。

正在考虑在 HP DL980-G7 上部署 HyperV Server 2012 的更多 IIS 8.0 特征,这些结果也将共享。

附录

PowerShell

背景

传统上,多套接字系统上的每个处理器都通过同一总线访问内存和 IO。 大规模系统使用 NUMA(非一致性内存访问)越来越常见,以避免总线瓶颈。 在此模型中,IO 和内存的不同部分连接到不同的套接字,这意味着 IO 和内存操作的性能受套接字连接到内存和 IO 的某些部分的密切程度的影响。

接收端缩放 (RSS) 允许处理多个处理器的网络接收。

配置 RSS 相关性

从 Windows Server 2012 开始,可以使用 PowerShell 配置与给定 NUMA 节点的 RSS 相关性。 核心网络团队非常出色地提供了一组 cmdlet,用于完全控制 RSS 堆栈。

更具体地说,可以使用以下 cmdlet 配置 NUMA 相关性:Set-NetAdapterRSS。 此 cmdlet 采用与服务器的硬件拓扑相关的几个参数。 参数包括:BaseProcessorGroup、BaseProcessorNumber、MaxProcessors 和 NumaNode。

可通过两种方法收集此类属性的值:手动和通过 PowerShell。

若要正确配置 NUMA 相关性设置,必须标识网络适配器与给定 NUMA 节点的物理连接。

手动收集拓扑信息

目前,此过程包括以下步骤:

  1. 使用控制面板\网络和 Internet\网络连接找到目标网络适配器。 下一步“设备名称”感兴趣的属性,如以下屏幕截图所示。
    Screenshot of the Network Connections tab in the Control Panel. The device name field is highlighted.
  2. 通过设备管理器找到 NIC。 为此,我们使用在上一步中收集的“设备名称”属性。
    Screenshot of the Server Manager Window on the Device Manager tab. The device name is highlighted in the expanded menu.
  3. 调用指定 NIC 的属性对话框。 “常规”选项卡将显示给定 NIC 的槽、设备和函数编号。
    Screenshot of the Properties dialog box on the General tab. The Location output is highlighted.
  4. 使用总线信息可以识别 NIC 连接到的 NUMA 节点,方法是将此信息与上述“硬件部分”中提供的硬件拓扑关系图相关联。
通过 PowerShell 收集硬件拓扑

可以使用 TechNet 库 (https://gallery.technet.microsoft.com/Device-Management-7fad2388) 上提供的设备管理 PowerShell Cmdlet 示例获取可用于设置正确 RSS 相关性值的硬件拓扑信息。 此示例提供 cmdlet 来枚举、控制和管理设备。

该模块当前公开以下 cmdlet:

  • Get-Device
  • Get-Driver
  • Get-Numa
  • Enable-Device
  • Disable-Device
列出设备与 NUMA 拓扑信息

Get-Device | Sort-Object -Property Name | ft Name, NumaNode, UINumber -AutoSize

逻辑处理器和 NUMA 信息

Get-Numa

固件表

$hardwareTopology = Get-Numa; $hardwareTopology

WCAT

Web 容量分析工具 (WCAT) 是一种轻型 HTTP 加载生成工具,主要用于测量受控环境中 Web 服务器的性能。 WCAT 可以模拟数千个并发用户向单个网站或多个网站发出请求。

可在以下位置找到:https://www.iis.net/downloads/community/2007/05/wcat-63-(x86)

关于

IIS 产品组

Microsoft 的 IIS 团队负责将 IIS 服务器作为 Windows Server 的一部分传送。 此团队还发布和维护在 https://www.iis.net/downloads 找到的各种相关产品。

Hewlett-Packard (HP)

Hewlett-Packard 公司 (HP) 是一家总部位于美国加州帕洛阿尔托的美国跨国信息技术公司。 它为消费者、中小企业和大型企业(包括政府、卫生和教育部门的客户)提供产品、技术、软件、解决方案和服务。 HP 是全球 Microsoft Windows 收入和单位方面的世界领先公司(2012 年 IDC 全球季度服务器跟踪器,2012 年 8 月)。 在 HP 业务关键服务器部门中,任务关键型 Windows 工程实验室拥有十多年的联合工程,可以提供可靠的 Microsoft Windows 和 SQL 服务器解决方案。 借助此 IIS 缩放项目,该团队与 Microsoft IIS 团队密切合作,以确保最佳的可伸缩性和性能。

EEC

Microsoft 企业工程中心 (EEC) 的存在归功于一个简单的想法:为 Microsoft 客户提供最大的验证和协作实验室。

EEC 配备了世界级的硬件,以及一支才华横溢、充满激情的团队。 由于我们位于 Redmond 校园(位于 Microsoft 产品开发团队的中心),因此我们能够将 Microsoft 的客户、合作伙伴和产品组工程师聚集在一起,以验证明天的企业解决方案。