网络优化

在 BizTalk Server 环境中,BizTalk Server 计算机与 SQL Server 计算机(s)分开,BizTalk Server 处理的每个消息都需要通过网络进行通信。 此通信包括 BizTalk Server 计算机与 BizTalk Message Box 数据库(s)、BizTalk 管理数据库(s)、BAM 数据库和其他数据库之间的大量流量。 在高负载方案中,此通信可能会导致大量网络流量,并可能成为瓶颈,尤其是在网络设置尚未优化、安装不够网络接口卡或网络带宽不足时。

本主题提供用于改善在同一台 Hyper-V 主计算机上运行的 Hyper-V 虚拟机之间的网络性能的步骤,并提供一些改进网络性能的一般建议。

注释

判断网络 IO 是否是瓶颈的最常见指标是计数器“SQL Server:Wait Statistics\Network IO waits”。 如果此计数器中 平均等待时间 的值在一台或多台 SQL Server 计算机上大于零,则网络 IO 是瓶颈。

提高 Hyper-V 上的 BizTalk Server 的网络性能

配置在同一台 Hyper-V 主计算机上运行的 Hyper-V 虚拟机以使用专用虚拟网络

若要提高在同一 Hyper-V 主计算机上运行的 Hyper-V 虚拟机之间的网络性能,请创建专用虚拟网络,并通过专用虚拟网络在虚拟机之间路由网络流量。

创建专用虚拟网络
  1. 单击“ 开始”,单击“ 所有程序”。 单击 “管理工具”,然后单击 “Hyper-V 管理器”。

  2. 在 Hyper-V 管理器的左侧窗格中,右键单击 Hyper-V 管理器,然后单击“ 连接到服务器”。

  3. “选择计算机 ”对话框中,输入 Hyper-V 主计算机的名称,然后单击“ 确定”。

  4. 在 Hyper-V 管理器的左侧窗格中,右键单击 Hyper-V 主机,然后单击 “虚拟网络管理器”。

  5. 在虚拟网络管理器中, 在要创建的虚拟网络类型下,单击“ 专用”,然后单击“ 添加”。

  6. 输入新虚拟网络的名称,然后单击“ 确定”。 虚拟网络现在可用于在此 Hyper-V 主机上运行的每个 Hyper-V 虚拟机。

将专用虚拟网络添加到 Hyper-V 主机上运行的 Hyper-V 虚拟机
  1. 单击“ 开始”,单击“ 所有程序”。 单击 “管理工具”,然后单击 “Hyper-V 管理器”。

  2. 在 Hyper-V 管理器的左侧窗格中,右键单击 Hyper-V 管理器,然后单击“ 连接到服务器”。

  3. “选择计算机 ”对话框中,输入 Hyper-V 主计算机的名称,然后单击“ 确定”。

  4. 右键单击虚拟机,然后单击“ 关闭”,关闭要为其添加专用虚拟网络的任何正在运行的虚拟机。

  5. 关闭虚拟机后,右键单击虚拟机,然后单击 “设置” 以更改虚拟机的设置。

  6. “machine_name>设置<”对话框中的“添加硬件”下,单击以选择“网络适配器”,然后单击“添加”。

  7. “网络适配器 配置”页上,在 “网络:”下,选择之前创建的专用虚拟网络,然后单击“ 确定”。 现在,你已将私有虚拟网络提供给 Hyper-V 虚拟机,此虚拟机将在下次启动时可访问。

  8. 对要通过专用虚拟网络路由网络流量的每个虚拟机重复上述步骤。

  9. 启动已添加至专用虚拟网络中的虚拟机。 右键单击每个虚拟机,然后单击“ 启动”。

将每个虚拟机配置为使用专用虚拟网络
  1. 启动每个虚拟机后,虚拟机可以访问专用虚拟网络作为网络连接。 在每个虚拟机上配置网络连接以使用 TCP/IPv4,并指定 TCP/IPv4 协议的设置。

    1. 访问网络连接属性页,选择 Internet 协议版本 4(TCP/IPv4),然后单击“ 属性”。

    2. 选择“使用下面的 IP 地址”

  2. RFC 1918 中标识的专用 IP 地址范围(专用 IP 地址分配)中输入 IP 地址字段的值。

  3. 记下指定的 IP 地址;稍后需要在 HOSTS 文件条目中将此值与此计算机的 NetBIOS 名称相关联。

  4. “子网掩码 ”字段输入适当的值。

    注释

    Windows 应根据输入到 IP 地址字段中的值,使用适当的值填充子网掩码字段。

  5. 默认网关 字段留空,单击“ 确定”,然后单击“ 关闭”。

  6. 使用唯一的专用 IP 地址配置每个虚拟机后,请使用 Hyper-V 主计算机上运行的其他虚拟机的 IP 地址和 NetBIOS 名称更新每个虚拟机上的 HOSTS 文件。 更新的 HOSTS 文件应保存到每个虚拟机上的 %systemroot%\drivers\etc\ 文件夹中。

    注释

    由于默认情况下 Windows 先检查本地 HOSTS 文件以解析 NetBIOS 名称,因此,通过更新每个虚拟机上的 HOSTS 文件,其他虚拟机的唯一专用 IP 地址,这些虚拟机之间的网络流量现在将通过专用虚拟网络路由。

禁用虚拟机网卡的 TCP 卸载

若要为每个虚拟机上的网卡禁用 TCP 卸载,请编辑注册表(NDIS 5.1),如 使用注册表值启用和禁用任务卸载中所述。

重要

使用注册表编辑器时,请谨慎行事,并自行承担风险。 使用注册表编辑器不当导致的问题可能需要重新安装操作系统。 有关如何备份、恢复和修改注册表的更多信息,请参阅高级用户的 Windows 注册表信息

提高网络性能的一般准则

以下建议可用于提高网络性能:

将其他网卡添加到 BizTalk Server 环境中的计算机

添加其他硬盘驱动器可以提高磁盘性能一样,添加其他网卡可以提高网络性能。 如果 BizTalk Server 环境中的计算机上的网卡饱和,并且卡是瓶颈,请考虑添加一个或多个额外的网卡以提高性能。

尽可能将集线器替换为交换机

交换机包含用于直接路由源和目标之间的流量的逻辑,而中心则使用广播模型路由流量。 因此,开关效率更高,可提供改进的性能。

删除不必要的网络协议

Windows Server 计算机有时安装的网络服务和协议比实际需要的要多。 每个额外的网络客户端、服务或协议都会给系统资源带来额外的开销。

此外,每个已安装的协议都会生成网络流量。 通过删除不必要的网络客户端、服务和协议,系统资源可用于其他进程,可以避免过多的网络流量,并且必须协商的网络绑定数减少到最低。

若要查看当前安装的网络客户端、协议和服务,请执行以下步骤:

  1. 单击“开始”,指向“设置”,然后单击控制面板

  2. 双击“ 网络连接 ”以显示计算机上的网络连接。

  3. 右键单击 “局域网连接 ”(或网络连接的条目),然后单击“ 属性 ”以显示网络连接的属性对话框。

  4. 若要删除不必要的项目,请选择它并单击“ 卸载”。 若要禁用某个项目,只需清除与该项关联的复选框。

    如果不确定卸载连接项的效果,请禁用该项,而不是卸载它。 禁用项可以确定系统上实际需要哪些服务、协议和客户端。 如果确定禁用某个项对服务器没有负面影响,则可以卸载该项目。

    在许多情况下,在基于标准化 TCP/IP 的网络上,只需要以下三个部件:

  • Microsoft 网络客户端

  • Microsoft 网络的文件和打印机共享

  • Internet 协议 (TCP/IP)

BizTalk Server 环境中所有计算机上的网络适配器驱动程序都应调整以优化性能。

重要

在对网络适配器驱动程序应用优化之前,请始终为环境中的网卡安装最新的网络适配器设备驱动程序。

调整网络适配器设备驱动程序,以最大化可用于数据包缓冲的内存量,无论是传入还是传出。 同时最大化缓冲区计数,尤其是传输缓冲区和合并缓冲区。 这些参数的默认值(甚至是否提供)因制造商和驱动程序版本而异。 目标是最大化网络适配器硬件所完成的任务,并允许网络操作的最大化可能的缓冲区空间来缓解网络流量突发及其带来的拥塞。

注释

优化网络适配器驱动程序的步骤因制造商而异。

按照以下步骤访问 Windows Server 2008 R2 中网络适配器的设置:

  1. 单击“ 开始”,然后单击“ 控制面板”。

  2. 单击 “网络”和“Internet”,然后单击“ 网络和共享中心”。

  3. 单击“ 更改适配器设置”,右键单击 “局域网连接 ”(或网络连接的名称),然后单击“ 属性”。

  4. 在“ 常规 ”选项卡上,单击“ 配置”。

  5. 单击“ 高级 ”选项卡以访问可为网络适配器配置的属性。

    应在 BizTalk Server 环境中为每个网络适配器配置以下属性:

注释

为每个物理网络适配器应用这些设置,包括为聚合、负载均衡或容错配置的一组网络适配器内的单个网络适配器。 使用某些组合软件时,可能需要将这些设置应用到团队。 请注意,某些网络适配器是自我优化的,可能无法提供手动配置参数的选项。

  • 电源选项 – 配置网络适配器驱动程序以防止电源管理功能关闭网络适配器以节省电源。 此功能可能对客户端计算机有用,但很少在 BizTalk Server 或 SQL Server 计算机上使用(如果有的话)。

  • 固定速度/双工 (不使用 AUTO) - 将网络速度、双工和流量控制参数设置为匹配它们所连接的交换机上的设置,这一点非常重要。 这将缓解定期“自动同步”的发生,这可能会暂时使连接脱机。

  • 最大合并缓冲区 - 映射寄存器是用于将物理地址转换为虚拟地址的系统资源,适用于支持总线主控的网络适配器。 当驱动程序的映射寄存器耗尽时,网络驱动程序能够使用聚合缓冲区。 将此值设置为尽可能高,以获得最佳性能。 在物理内存受限的服务器上,当合并缓冲区消耗系统内存时,这可能会产生负面影响。 但是,在大多数系统上,可以应用最大设置,而不会显著减少可用内存。

  • 最大传输/发送描述符和发送缓冲区 - 此设置指定驱动程序分配的传输控制缓冲区数供网络接口使用。 这直接反映了驱动程序在其“发送”队列中可以具有的未完成数据包数。 将此值设置为尽可能高,以获得最佳性能。 在物理内存受限的服务器上,当发送缓冲区消耗系统内存时,这可能会产生负面影响。 但是,在大多数系统上,可以应用最大设置,而不会显著减少可用内存。

  • 最大接收缓冲区 - 此设置指定将数据复制到协议内存时网络接口驱动程序使用的内存缓冲区量。 它通常默认设置为相对较低的值。 将此值设置为尽可能高,以获得最佳性能。 在物理内存受限的服务器上,当接收缓冲区消耗系统内存时,这可能会产生负面影响。 但是,在大多数系统上,可以应用最大设置,而不会显著减少可用内存。

  • 所有卸载选项开 - 在几乎所有情况下,启用网络接口卸载功能时,性能都会得到改进。 某些网络适配器提供单独的参数来启用或禁用发送和接收流量的卸载。 将任务从 CPU 卸载到网络适配器有助于降低服务器上的 CPU 使用率,从而提高系统的整体性能。 Microsoft TCP/IP 传输可以将以下一个或多个任务卸载到具有适当功能的网络适配器:

    • 校验和任务 - TCP/IP 传输可以将发送和接收的 IP 和 TCP 校验和计算和验证卸载到网络适配器,如果网络适配器驱动程序提供此功能,请启用此选项。

    • IP 安全任务 - TCP/IP 协议栈可以将身份验证标头(AH)和封装安全负载(ESP)的加密校验和计算与验证任务卸载到网卡。 TCP/IP 传输还可以将 ESP 有效负载的加密和解密卸载到网络适配器。 如果网络适配器驱动程序提供此功能,请启用这些选项。

    • 大型 TCP 数据包分段 - TCP/IP 传输支持大型发送卸载(LSO)。 使用 LSO,TCP/IP 传输可以卸载大型 TCP 数据包的分段。

    • 堆栈卸载 – 可将整个网络堆栈卸载到具有相应功能的网络适配器。 如果网络适配器驱动程序提供此功能,请启用此选项。

  • LAN 唤醒已禁用(除非使用) - 将网络适配器驱动程序配置为禁用 lan 唤醒功能。 此功能对于客户端计算机可能很有用,但很少在 BizTalk Server 或 SQL Server 计算机上使用此功能。

    有关优化网络适配器以提升性能的详细信息,请参阅“BizTalk Server 数据库优化”白皮书的“ 网络设备设置 ”部分。