网络优化
在BizTalk Server环境中,BizTalk Server计算机 () 与SQL Server计算机 () 分开,BizTalk Server处理的每条消息都需要通过网络通信。 此通信包括BizTalk Server计算机与 BizTalk Message Box 数据库 () 、BizTalk 管理数据库 () 、BAM 数据库和其他数据库之间的大量流量。 在高负载方案中,这种通信可能会导致大量网络流量,并可能成为瓶颈,尤其是在网络设置未优化、网络接口卡安装不足或网络带宽不足时。
本主题提供有关提高在同一 Hyper-V 主计算机上运行的 Hyper-V 虚拟机之间的网络性能的步骤,并提供一些有关提高网络性能的一般建议。
注意
网络 IO 是瓶颈的最常见指示器是计数器“SQL Server:等待统计信息\网络 IO 等待”。 如果此计数器中的“平均等待时间”值在一台或多台SQL Server计算机上大于零,则网络 IO 是一个瓶颈。
提高 Hyper-V 上BizTalk Server的网络性能
将在同一 Hyper-V 主机上运行的 Hyper-V 虚拟机配置为使用专用虚拟网络
若要提高在同一 Hyper-V 主计算机上运行的 Hyper-V 虚拟机之间的网络性能,请创建专用虚拟网络,并通过专用虚拟网络路由虚拟机之间的网络流量。
创建专用虚拟网络
单击 “开始”,单击“ 所有程序”。 单击“ 管理工具”,然后单击“ Hyper-V 管理器”。
在 Hyper-V 管理器的左侧窗格中,右键单击“ Hyper-V 管理器”,然后单击“ 连接到服务器”。
在 “选择计算机 ”对话框中,输入 Hyper-V 主计算机的名称,然后单击“ 确定”。
在 Hyper-V 管理器的左侧窗格中,右键单击 Hyper-V 主机,然后单击“虚拟网络管理器”。
在“虚拟网络管理器”的“要创建哪种类型的虚拟网络?”下,单击“专用”,然后单击“添加”。
输入新虚拟网络的名称,然后单击“ 确定”。 虚拟网络现在可用于在此 Hyper-V 主机上运行的每个 Hyper-V 虚拟机。
将专用虚拟网络添加到 Hyper-V 主机上运行的 Hyper-V 虚拟机
单击 “开始”,单击“ 所有程序”。 单击“ 管理工具”,然后单击“ Hyper-V 管理器”。
在 Hyper-V 管理器的左侧窗格中,右键单击“ Hyper-V 管理器”,然后单击“ 连接到服务器”。
在 “选择计算机 ”对话框中,输入 Hyper-V 主计算机的名称,然后单击“ 确定”。
通过右键单击虚拟机,然后单击“ 关闭”,关闭要为其添加专用虚拟网络的任何正在运行的虚拟机。
关闭虚拟机后,右键单击虚拟机,然后单击 “设置” 以更改虚拟机的设置。
在“machine_name>设置<”对话框中的“添加硬件”下,单击以选择“网络适配器”,然后单击“添加”。
在 “网络适配器 配置”页上的“ 网络:”下,选择之前创建的专用虚拟网络,然后单击“ 确定”。 现已将专用虚拟网络提供给 Hyper-V 虚拟机,下次启动虚拟机时可以访问该虚拟网络。
对要通过专用虚拟网络路由网络流量的每个虚拟机重复上述步骤。
启动已将专用虚拟网络添加到的虚拟机。 右键单击每个虚拟机,然后单击“ 启动”。
将每个虚拟机配置为使用专用虚拟网络
启动每个虚拟机后,虚拟机可以访问专用虚拟网络作为网络连接。 将每个虚拟机上的网络连接配置为使用 TCP/IPv4,并指定 TCP/IPv4 协议的设置。
访问“网络连接属性”页,选择“ Internet 协议版本 4 (TCP/IPv4) ”,然后单击“ 属性”。
选择“使用下面的 IP 地址”。
输入 RFC 1918“专用 IP 地址分配”中标识的专用 IP 地址范围中的“IP 地址”字段的值。
记下指定的 IP 地址;稍后需要在 HOSTS 文件条目中将此值与此计算机的 NetBIOS 名称相关联。
为 “子网掩码” 字段输入适当的值。
注意
Windows 应根据在 IP 地址字段中输入的值,使用适当的值填充子网掩码字段。
将 “默认网关 ”字段留空,单击“ 确定”,然后单击“ 关闭”。
使用唯一的专用 IP 地址配置每个虚拟机后,使用 Hyper-V 主机上运行的其他虚拟机的 IP 地址和 NetBIOS 名称更新每个虚拟机上的 HOSTS 文件。 更新的 HOSTS 文件应保存到每个虚拟机上的 %systemroot%\drivers\etc\ 文件夹中。
注意
由于默认情况下,Windows 首先检查本地 HOSTS 文件以解析 NetBIOS 名称,因此,通过使用其他虚拟机的唯一专用 IP 地址更新每个虚拟机上的 HOSTS 文件,这些计算机之间的网络流量现在将通过专用虚拟网络进行路由。
禁用虚拟机网卡的 TCP 卸载
若要为每个虚拟机上的网卡禁用 TCP 卸载,请编辑 (NDIS 5.1) 的注册表,如 使用注册表值启用和禁用任务卸载中所述。
重要
使用注册表编辑器时,请格外小心,风险自担。 错误使用注册表编辑器导致的问题可能需要重新安装操作系统。 有关如何备份、还原和修改注册表的详细信息,请参阅 高级用户的 Windows 注册表信息。
有关提高网络性能的一般准则
以下建议可用于提高网络性能:
将其他网卡添加到BizTalk Server环境中的计算机
正如添加其他硬盘驱动器可以提高磁盘性能一样,添加其他网卡可以提高网络性能。 如果BizTalk Server环境中的计算机上的网卡已饱和,并且卡是瓶颈,请考虑添加一个或多个额外的网卡以提高性能。
在可能的情况下,将中心替换为开关
交换机包含用于在源和目标之间直接路由流量的逻辑,而中心则使用广播模型来路由流量。 因此,交换机更高效,性能更佳。
删除不必要的网络协议
有时,Windows Server 计算机安装的网络服务和协议比实际需要的要多。 每个额外的网络客户端、服务或协议都会给系统资源带来额外的开销。
此外,每个已安装的协议都会生成网络流量。 通过删除不必要的网络客户端、服务和协议,系统资源可供其他进程使用,避免了过多的网络流量,并且必须协商的网络绑定数将减少到最少。
若要查看当前安装的网络客户端、协议和服务,请执行以下步骤:
单击“开始”,指向“设置”,然后单击“控制面板”。
双击“ 网络连接 ”以显示计算机上的网络连接。
右键单击“ 本地连接 (或网络连接) 条目,然后单击” 属性 “以显示网络连接的属性对话框。
若要删除不必要的项,请选择它并单击“ 卸载”。 若要禁用某个项,只需清除与该项关联的复选框。
如果不确定卸载某个项对连接的影响,请禁用该项,而不是卸载它。 禁用项可以确定系统上实际需要哪些服务、协议和客户端。 当确定禁用某个项对服务器没有负面影响时,可以卸载该项。
在许多情况下,在基于 TCP/IP 的标准网络上操作只需要以下三个组件:
Microsoft 网络客户端
Microsoft 网络的文件和打印机共享
Internet 协议 (TCP/IP)
应针对性能优化BizTalk Server环境中所有计算机上的网络适配器驱动程序
重要
在将优化应用到网络适配器驱动程序之前,请始终在环境中为网卡安装最新的网络适配器设备驱动程序。
调整网络适配器设备驱动程序,以最大化可用于数据包缓冲的内存量,包括传入和传出。 同时最大化缓冲区计数,尤其是传输缓冲区和合并缓冲区。 这些参数的默认值以及是否提供它们,因制造商和驱动程序版本而异。 目标是最大限度地利用网络适配器硬件完成的工作,并为网络操作提供尽可能大的缓冲区空间,以缓解网络流量突发和相关的拥塞。
注意
调整网络适配器驱动程序的步骤因制造商而异。
按照以下步骤访问 Windows Server 2008 R2 中网络适配器的设置:
单击“开始”,然后单击“控制面板”。
单击“ 网络和 Internet”,然后单击“ 网络和共享中心”。
单击“ 更改适配器设置”,右键单击“ 本地连接 ” (或网络连接的名称) ,然后单击“ 属性”。
在“ 常规 ”选项卡上,单击“ 配置”。
单击“ 高级 ”选项卡以访问可为网络适配器配置的属性。
应为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数据库优化”白皮书的网络设备设置部分。