方案概述

本主题概述了BizTalk Server产品组完成的负载测试,以评估在现代企业级硬件上运行时BizTalk Server的可伸缩性。

所有测试都是在使用专用硬件的隔离环境中执行的。 执行了 200 多次测试运行,所有结果均由BizTalk Server产品组验证。

测试是使用消息传递方案和业务流程方案执行的;这两种方案都使用了 BizTalk WCF-NetTcp 适配器。

为了评估BizTalk Server引擎的最大可能性能,不使用任何自定义管道组件;业务流程方案仅使用一个非常简单的业务流程。 优化 性能中所述的性能 优化已应用于环境,并在 观察和建议中完整记录。

测试目标

执行的负载测试的目标包括:

  1. 为BizTalk Server提供常规大小调整和缩放指南:

    1. 量化向BizTalk Server组添加其他计算机的影响。 对于此测试,当BizTalk Server组运行一台、两台、三台和四台运行BizTalk Server的计算机时,测量BizTalk Server解决方案的性能。

    2. 量化向BizTalk Server组添加其他 BizTalk MessageBox 数据库的影响。 对于此测试,当组配置为使用单个 MessageBox 数据库或四个 MessageBox 数据库时,将测量BizTalk Server解决方案的性能。

      注意

      未对两个 MessageBox 数据库进行测试,因为从一个数据库扩展到两个 MessageBox 数据库时几乎没有性能优势(如果有的话)。 事实上,从一个到两个 MessageBox 数据库缩放可能会对性能产生负面影响。 有关横向扩展 MessageBox 的详细信息,请参阅横向扩展SQL Server层

  2. 为以下方案提供大小调整和缩放指南:

    1. WCF-NetTcp 单向消息传递方案

    2. WCF-NetTcp 单向业务流程方案

使用的测试度量

BizTalk Server性能是使用以下条件衡量的:

  1. 总体吞吐量 – 使用 BizTalk:Messaging (主机名) \Documents received/SecBizTalk:Messaging (主机名) \Documents 已处理/秒性能计数器BizTalk Server接收和处理主机测量。

  2. CPU 利用率 - 使用 BizTalk Server] 和 SQL Server 计算机上的 \Processor (_Total) \%Processor Time 性能计数器测量。 所有测试结果都经过全面审查,任何性能瓶颈都在 观察和建议中介绍。

横向扩展处理层和数据库层

BizTalk Server通过将一台或多台BizTalk Server计算机添加到现有BizTalk Server组,轻松适应增加的处理层功能。 BizTalk Server通过添加 MessageBox 数据库来适应增加的数据库层功能。

为了为BizTalk Server提供横向扩展指标,测试是使用一台、两台、三台和四台BizTalk Server 计算机执行的。 为了演示横向扩展数据库层的影响,对单个和多 MessageBox 系统执行了这些测试。

测试方案

下面详细介绍了通过这些方案的BizTalk Server环境的消息流。

消息传递测试方案

消息传递方案

  1. Visual Studio 2010 Ultimate 版本负载测试功能会生成一条 XML 消息,并将其发送到使用 NetTcp 传输BizTalk Server的计算机。

    注意

    有关 Visual Studio 2010 Ultimate 版本负载测试的详细信息,请参阅超链接“” 测试应用程序 (https://go.microsoft.com/fwlink/?LinkID=208247) 。

    有关如何在测试环境中使用 Visual Studio 2010 Ultimate 版本负载测试功能的详细信息,请参阅 使用 Visual Studio 促进自动测试

  2. XML 消息由使用 WCF-NetTcp 接收适配器的BizTalk Server接收位置接收。 接收位置配置为使用 PassThruReceive 管道,该管道不执行消息处理。

  3. BizTalk Server终结点管理器 (EPM) 将消息发布到 BizTalk MessageBox 数据库。

  4. 使用 WCF-NetTcp 发送适配器的BizTalk Server发送端口订阅由接收位置发布的消息,并从 BizTalk MessageBox 检索消息。 发送端口使用 PassThruTransmit 管道,该管道不执行消息处理。

  5. 消息由 WCF-NetTcp 发送适配器传递到后端 WCF 服务。

业务流程测试方案

业务流程方案流

  1. Visual Studio 2010 Ultimate 版本负载测试功能生成 XML 消息,并使用 NetTcp 传输将其发送到运行 BizTalk Server 的计算机。

  2. XML 消息由使用 WCF-NetTcp 接收适配器的BizTalk Server接收端口接收。 接收端口配置为使用 PassThruReceive 管道,该管道不执行消息处理。

  3. 消息将传递到简单的业务流程,该业务流程仅包含从步骤 2) 绑定到 WCF 接收端口的接收端口 (和从步骤 4) 绑定到 WCF 发送端口的发送端口 (。 消息变量为“un-typed”,这意味着它们使用的“消息类型”为“System.XML”。XmlDocument”。 业务流程仅通过其接收端口接收消息,并通过其发送端口发送消息。 不执行消息处理。

  4. 使用 WCF-NetTcp 发送适配器的单向BizTalk Server发送端口订阅业务流程发布的消息,并从 BizTalk MessageBox 检索消息。 发送端口使用 PassThruTransmit 管道,该管道不执行消息处理。

  5. 消息由 WCF-NetTcp 发送适配器传递到后端 WCF 服务。

硬件配置

实验室硬件关系图和规范

下面演示了用于实验室的硬件配置。 为了轻松适应处理层和数据库层的横向扩展,使用了以下实验室硬件:

  • 两台企业级 Hewlett Packard DL-380 计算机和两台适用于BizTalk Server处理层的企业级 Dell R710 计算机。

  • 用于数据库层的四台企业级 Dell R900 计算机,提供多 MessageBox 功能。

    下面提供了实验室中使用的硬件示意图:

    性能指南基础结构

    下表提供了有关实验室中使用的硬件的更具体信息。

名称 型号 CPU 类型 CPU 数 核心数/CPU 数 CPU 体系结构 内存 操作系统 软件
R710-01 Dell PowerEdge R710 Intel Xeon X5570 2 x 2.93 GHz 4 X64 72 GB Windows Server 2008 R2 企业版 BizTalk Server
R710-02 Dell PowerEdge R710 Intel Xeon X5570 2 x 2.93 GHz 4 X64 72 GB Windows Server 2008 R2 企业版 BizTalk Server
DL380G7-01 Hewlett Packard DL380 G7 Intel Xeon X5670 2 x 2.93 GHz 6 X64 192 GB Windows Server 2008 R2 企业版 BizTalk Server
DL380G7-02 Hewlett Packard DL380 G7 Intel Xeon X5670 2 x 2.93 GHz 6 X64 192 GB Windows Server 2008 R2 企业版 BizTalk Server
DL380-01 Hewlett Packard DL380 Intel Xeon 5150 2 x 2.66 GHz 2 X64 8 GB Windows Server 2008 R2 企业版 SQL Server 2008 R2 负载测试 DB

Visual Studio 2010

WCF 后端服务
DL380-02 Hewlett Packard DL380 Intel Xeon E5335 2 x 2.00 GHz 4 X64 8 GB Windows Server 2008 R2 企业版 Visual Studio 2010 Load Test Controller
DL380-03 Hewlett Packard DL380 Intel Xeon E5335 2 x 2.00 GHz 4 X64 8 GB Windows Server 2008 R2 企业版 Visual Studio 2010 负载测试代理
DL380-04 Hewlett Packard DL380 Intel Xeon E5335 2 x 2.00 GHz 4 X64 8 GB Windows Server 2008 R2 企业版 Visual Studio 2010 负载测试代理。

Perfmon 命令行
R805-06 Dell PowerEdge R805 AMD Quad-Core Opteron 2354 2 x 2.2 GHz 4 X64 32 GB Windows Server 2008 R2 企业版 Visual Studio 2010 负载测试代理
R805-07 Dell PowerEdge R805 AMD Quad-Core Opteron 2354 2 x 2.2 GHz 4 X64 32 GB Windows Server 2008 R2 企业版 Visual Studio 2010 负载测试代理
R900-03 Dell PowerEdge R900 Intel Xeon E7330 4 x 2.4 GHz 4 X64 64 GB Windows Server 2008 R2 企业版 带累积更新 4 的 SQL Server 2008 R2
R900-04 Dell PowerEdge R900 Intel Xeon E7330 4 x 2.4 GHz 4 X64 64 GB Windows Server 2008 R2 企业版 带累积更新 4 的 SQL Server 2008 R2
R900-05 Dell PowerEdge R900 Intel Xeon E7330 4 x 2.4 GHz 4 X64 64 GB Windows Server 2008 R2 企业版 带累积更新 4 的 SQL Server 2008 R2
R900-06 Dell PowerEdge R900 Intel Xeon E7330 4 x 2.4 GHz 4 X64 64 GB Windows Server 2008 R2 企业版 具有累积更新 4 的 SQL Server 2008 R2

存储区域网络配置

下图描绘了用于实验室环境的存储区域网络 (SAN) 配置。

SAN 信息

EMC CLARiiON CX4-960 SAN 配置

服务处理器和缓存信息 LUN 配置
两个服务处理器,每个都有:

- 读取缓存大小:2000 MB。
- 写入缓存大小:8000 MB。
- 连接到光纤交换机的两个前端端口。 每个端口 4 Gbps。
- 64 个磁盘 (268 GB、15k RPM、光纤通道、希捷。
- 从这 64 个磁盘中雕刻的 8 个磁盘 RAID 1+0 组。
- 为每个数据库服务器分配了 5 个从这些 RAID 组均匀配置的 MetaLUN。

请务必确定 SAN 的最大可达到吞吐量,并将此值与生产中的 SAN 的预期负载进行比较。 这将有助于防止在将应用程序从测试/质量保证 (QA) 环境迁移到生产环境时,SAN 相关硬件出现意外支出。 例如,SAN 的最大可用吞吐量对于沙盒测试环境中的应用程序而言可能已足够。 但是,如果其他服务器应用程序将在生产环境中使用 SAN,则可用的 SAN 吞吐量可能不足,并可能成为瓶颈。

评估 SAN 的性能时,请考虑以下事项:

  1. SAN 可达到的最大吞吐量是多少? – 这是使用服务器中主机总线适配器 (HBA) 、交换机 SAN 吞吐量和 SAN 控制器卡速度的最低公分母(吞吐量)来测量的。

  2. 其他哪些应用程序将在生产环境中使用 SAN? – 考虑其他哪些应用程序将在生产环境中使用 SAN。 如果其他数据库或其他 I/O 密集型应用程序(如 Exchange Server)将在生产环境中使用 SAN,则运行 BizTalk Server 的计算机可用的 SAN 吞吐量将相应地减少。

    对于实验室环境,使用了专用 SAN。 四台SQL Server计算机中的每台计算机都使用两个 4 Gbps 主机总线适配器连接到 SAN 交换机, (HBA) ,每个服务器的总潜在吞吐量为 8-Gbps。 SAN 有两个服务处理器,每个服务处理器都有两个连接到光纤交换机的前端端口,在 SAN 和交换机之间提供 16 Gbps 的总潜在吞吐量。

    以下 LUN 配置用于在测试环境中运行SQL Server的四台计算机。

驱动器号 卷名 文件 LUN 大小 (GB)
C 本地 C 驱动器 MASTER、MSDB 和 MODEL 136
H Data_Tempdb TempDB 数据文件 50
I Logs_Tempdb TempDB 日志文件 50
J Data_BtsMsgBox BizTalk MsgBoxDB 数据文件 + 在 Master MsgBox) Mgmt DB、SSO DB、DTA DB 数据文件上 ( 120
K Logs_BtsMsgBox BizTalk MsgBoxDB 日志文件 + 在 Master MsgBox) Mgmt DB、SSO DB、DTA DB 日志文件上 ( 120
O Logs_Spare 不用于 SQL 文件。 用于存储 DTCLog 文件,因为 MSDTC 会导致频繁的磁盘 I/O,尤其是在多 MessageBox 环境中。 20

SQLIO 测试结果

我们使用 SQLIO 工具对存储区域网络 (SAN) 配置中的输入/输出容量进行基准测试并测量。 顾名思义,SQLIO 是衡量文件系统 I/O 对SQL Server性能影响的重要工具。

若要衡量SQL Server数据库应用程序的存储区域网络 (SAN) 配置的输入/输出容量,请参阅分析 SQL Server 数据库应用程序的 I/O 特征和调整存储系统大小

对于 SQLIO 测试,sqlio.exe 实用工具从 8 个线程发出 8K 个读取请求,并将 I/O 队列深度维持为 8。 我们使用了以下参数:

  • 所有测试都使用了 8 个处理线程,每个线程运行 60 秒。

  • 对数据文件进行 8kb 随机写入。

  • 对数据文件进行 8kb 随机读取。

  • 所有文件的大小均为 25 GB。

  • 要基准测试的磁盘驱动器是 H:、I:、J:和 K 驱动器。

使用的 SQLIO 命令行如下所示:

  • 对于读取:sqlio -kR -s60 -frandom -o8 -t8 -b8 -LS -FParam.txt

  • 对于写入:sqlio -kW -s60 -frandom -o8 -t8 -b8 -LS -FParam.txt

Param.txt 文件包含以下项:

  • 驱动器数: H:、I:、J:和 K

  • 测试文件的物理位置

    • H:\testfile.dat 2 0x0 25000

    • I:\testfile.dat 2 0x0 25000

    • J:\testfile.dat 2 0x0 25000

    • K:\testfile.dat 2 0x0 25000

下表列出了测试结果:

  • 在 LUN H:、I:、J:、K: (用于所有数据库文件的 LUN 上同时从 25 GB 测试文件进行 8 KB 随机读取)

    每秒输入/输出操作数 (IO/秒) 每秒兆字节 (MB/秒) 平均延迟
    10662.67 83.30 5 ms
  • 在 LUN H:、I:、J:、K: (用于所有数据库文件的 LUN 上同时对 25 GB 测试文件进行 8 KB 随机写入)

    每秒输入/输出操作数 (IO/秒) 每秒兆字节 (MB/秒) 平均延迟
    31527.95 246.31 1 毫秒

另请参阅

缩放 BizTalk Server 生产环境