Scenario Overview
This topic provides an overview of load testing completed by the BizTalk Server product group to assess scalability of BizTalk Server 2009 when running on modern enterprise class hardware.
All testing was performed in an isolated environment using dedicated hardware. Over 200 test runs were performed and all results were validated by the BizTalk Server product group.
Tests were performed using a Messaging only scenario and an Orchestration scenario; both scenarios utilized the BizTalk WCF-NetTcp adapter.
To evaluate the maximum possible performance of the BizTalk Server engine, no custom pipeline components were used and only a single, very simple orchestration was used for the Orchestration scenario. Performance optimizations described in Optimizing Performance were applied to the environment and are fully documented in Observations and Recommendations.
The goals of the load testing performed included the following:
-
Provide general sizing and scaling guidance for BizTalk Server 2009:
-
Quantify the impact of adding additional computers running BizTalk Server to a BizTalk Server group. For this testing, the performance of a BizTalk Server solution was measured when the BizTalk Server group was running one, two, three, and four computers running BizTalk Server.
-
Quantify the impact of adding additional BizTalk MessageBox databases to a BizTalk Server group. For this testing, the performance of a BizTalk Server solution was measured when the BizTalk Server group was configured to use either a single MessageBox database or three MessageBox databases.
Note Three MessageBox databases were used because there is little performance advantage when scaling from one to two MessageBox databases. For more information about scaling out the BizTalk Server MessageBox, see Scaling Out the SQL Server Tier (http://go.microsoft.com/fwlink/?LinkID=158075) in the BizTalk Server documentation.
-
Quantify the impact of adding additional computers running BizTalk Server to a BizTalk Server group. For this testing, the performance of a BizTalk Server solution was measured when the BizTalk Server group was running one, two, three, and four computers running BizTalk Server.
-
Provide sizing and scaling guidance for the following scenarios:
-
WCF-NetTcp one-way Messaging only scenario
-
WCF-NetTcp one-way Orchestration scenario
-
WCF-NetTcp one-way Messaging only scenario
BizTalk Server performance was measured using the following criteria:
-
Overall throughput –Measured with the BizTalk:Messaging(hostname)\Documents received/Sec and BizTalk:Messaging(hostname)\Documents processed/Sec performance counters for the BizTalk Server receive and processing hosts.
-
CPU utilization – measured with the \Processor(_Total)\%Processor Time performance counters on the BizTalk Server and SQL Server computers. All test results were comprehensively reviewed and any performance bottlenecks are described in Observations and Recommendations.
BizTalk Server easily accommodates increased processing tier capabilities by adding one or more BizTalk Server computers to an existing BizTalk Server group. BizTalk Server accommodates increased database tier capabilities through the addition of MessageBox databases.
To provide scale out metrics for BizTalk Server, tests were performed with one, two, three, and four BizTalk Server computers. To demonstrate the impact of scaling out the database tier, these tests were performed against both single and multi-MessageBox systems.
The flow of messages through the BizTalk Server environment for these scenarios is described in detail below.
Messaging only test scenario
-
The Microsoft BizTalk LoadGen 2007 tool generates an XML message and sends it to the computer running BizTalk Server with the NetTcp transport.
Note For more information about the Microsoft BizTalk LoadGen 2007 tool, see Microsoft BizTalk LoadGen 2007 Tool (http://go.microsoft.com/fwlink/?LinkID=59841) -
The XML message is received by a BizTalk Server receive location that uses the WCF-NetTcp receive adapter. The BizTalk Server receive location is configured to use the PassThruReceive pipeline, which performs no processing of the message.
-
The BizTalk Server end point manager (EPM) publishes the message to the BizTalk MessageBox database.
-
A BizTalk Server send port that uses the WCF-NetTcp send adapter subscribes to messages published by the receive location and retrieves the message from the BizTalk MessageBox. The send port uses the PassThruTransmit pipeline, which performs no processing of the message.
-
The message is delivered to the back end WCF service by the WCF-NetTcp send adapter.
Orchestration test scenario
-
The Microsoft BizTalk LoadGen 2007 tool generates an XML message and sends it to the computer running BizTalk Server using the NetTcp transport.
-
The XML message is received by a BizTalk Server receive location that uses the WCF-NetTcp receive adapter. The BizTalk Server receive location is configured to use the PassThruReceive, pipeline which performs no processing of the message.
-
The message is delivered to a simple Orchestration, which consists only of a receive location and a send port.
-
A one-way BizTalk Server send port that uses the WCF-NetTcp send adapter subscribes to messages published by the receive location and retrieves the message from the BizTalk MessageBox. The send port uses the PassThruTransmit pipeline, which performs no processing of the message.
-
The message is delivered to the back end WCF service by the WCF-NetTcp send adapter.
Lab hardware diagram and specifications
The hardware configuration used for the lab is illustrated below. To easily accommodate scale out of the processing and database tiers, the following lab hardware was used:
-
Six Enterprise class Hewlett Packard DL-380 computers for the BizTalk Server processing tier.
-
Three Enterprise class Hewlett Packard DL-580 computers for the database tier, to provide multi-MessageBox capability.
A diagram of the hardware used in the lab is provided below:
The following table provides more specific information about the hardware used in the lab.
| Name | Model | CPU type | Number of CPUs | Number of cores/CPU | CPU architecture | Memory | Local Disks | Operating System | Software |
|---|---|---|---|---|---|---|---|---|---|
|
TAP2X-L01 |
Hewlett Packard DL380 G5 |
Intel Xeon |
2 x 2.33 GHz |
4 |
x64 |
8 GB |
2 x 72 GB 10k SAS |
Windows Server 2008 Service Pack 2 Enterprise Edition 64 bit |
BizTalk Server 2009 |
|
TAP2X-L02 |
Hewlett Packard DL380 G5 |
Intel Xeon |
2 x 2.33 GHz |
4 |
x64 |
8 GB |
2 x 72 GB 10k SAS |
Windows Server 2008 Service Pack 2 Enterprise Edition 64 bit |
BizTalk Server 2009 |
|
TAP2X-L03 |
Hewlett Packard DL380 G5 |
Intel Xeon |
2 x 2.33 GHz |
4 |
x64 |
8 GB |
2 x 72 GB 10k SAS |
Windows Server 2008 Service Pack 2 Enterprise Edition 64 bit |
BizTalk Server 2009 |
|
TAP2X-L04 |
Hewlett Packard DL380 G5 |
Intel Xeon |
2 x 2.33 GHz |
4 |
x64 |
8 GB |
2 x 72 GB 10k SAS |
Windows Server 2008 Service Pack 2 Enterprise Edition 64 bit |
BizTalk Server 2009 |
|
TAP2X-M05 |
Hewlett Packard DL365 G1 |
AMD Opteron |
2 x 2.2 GHz |
2 |
x64 |
8 GB |
2 x 72gb 10k SAS |
Windows Server 2008 Service Pack 2 Enterprise Edition 64 bit |
Internet Information Services 7.0 |
|
TAP2X-M06 |
Hewlett Packard DL365 G1 |
AMD Opteron |
2 x 2.2 GHz |
2 |
x64 |
8 GB |
2 x 72 GB 10k SAS |
Windows Server 2008 Service Pack 2 Enterprise Edition 64 bit |
Internet Information Services 7.0 |
|
TAP2X-M08 |
Hewlett Packard DL365 G1 |
AMD Opteron |
2 x 2.2 GHz |
2 |
x64 |
8 GB |
2 x 72 GB 10k SAS |
Windows Server 2008 Service Pack 2 Enterprise Edition 64 bit |
Microsoft BizTalk LoadGen 2007 |
|
TAP2X-M09 |
Hewlett Packard DL365 G1 |
AMD Opteron |
2 x 2.2 GHz |
2 |
x64 |
8 GB |
2 x 72 GB 10k SAS |
Windows Server 2008 Service Pack 2 Enterprise Edition 64 bit |
Microsoft BizTalk LoadGen 2007 |
|
TAP2X-M10 |
Hewlett Packard DL365 G1 |
AMD Opteron |
2 x 2.2 GHz |
2 |
x64 |
8 GB |
2 x 72 GB 10k SAS |
Windows Server 2008 Service Pack 2 Enterprise Edition 64 bit |
Microsoft BizTalk LoadGen 2007 |
|
TAP2X-M11 |
Hewlett Packard DL365 G1 |
AMD Opteron |
2 x 2.2 GHz |
2 |
x64 |
8 GB |
2 x 72 GB 10k SAS |
Windows Server 2008 Service Pack 2 Enterprise Edition 64 bit |
Microsoft BizTalk LoadGen 2007 |
|
TAP4X-M01 |
Hewlett Packard DL580 |
Intel Xeon |
4 x 2.4 GHz |
4 |
x64 |
32 GB |
2 x 72 GB 10k SAS |
Windows Server 2008 Service Pack 2 Enterprise Edition 64 bit |
SQL Server 2008 Service Pack 1 |
|
TAP4X-O01 |
Hewlett Packard DL580 |
Intel Xeon |
4 x 2.4 GHz |
4 |
x64 |
32 GB |
2 x 72 GB 10k SAS |
Windows Server 2008 Service Pack 2 Enterprise Edition 64 bit |
SQL Server 2008 Service Pack 1 |
|
TAP4X-O05 |
Hewlett Packard DL580 |
Intel Xeon |
4 x 2.4 GHz |
4 |
x64 |
32 GB |
2 x 72 GB 10k SAS |
Windows Server 2008 Service Pack 2 Enterprise Edition 64 bit |
SQL Server 2008 Service Pack 1 |
|
BTSTAP-DC |
Hewlett Packard X5450 |
Intel Xeon |
1 x 3.0 GHz |
4 |
x64 |
2 GB |
2 x 72 GB 10k SAS |
Windows Server 2008 Service Pack 2 Enterprise Edition 64 bit |
Active Directory Domain Controller role |
|
BTSTAP-TS |
Hewlett Packard DL380 G5 |
Intel Xeon |
2 x 2.33 GHz |
4 |
x64 |
8 GB |
2 x 72 GB 10k SAS |
Windows Server 2008 Service Pack 2 Enterprise Edition 64 bit |
Terminal Services server role |
Storage area network configuration
The following diagram depicts the storage area network (SAN) configuration used for the lab environment.
It is important to determine the maximum attainable throughput of a SAN and compare this value to the expected load against the SAN in production. This will help prevent unanticipated expenditures for SAN-related hardware when moving your application from a test/quality assurance (QA) environment into a production environment. For example, the maximum available throughput for the SAN may be more than sufficient for your application in a sandboxed test environment. However, if other server applications will use the SAN in production, available SAN throughput may be insufficient and could become a bottleneck.
When evaluating performance of your SAN, consider the following:
-
What is the maximum attainable throughput of the SAN? – This is measured using the lowest common denominator, in terms of throughput, of the host bus adapter (HBA) in the server, the Switch-SAN throughput, and the speed of the SAN controller cards.
-
What other applications will use the SAN in production? – Consider what other applications will make use of the SAN in the production environment. If other database or otherwise I/O intensive applications such as Exchange Server will use the SAN in production, the amount of SAN throughput available for your computer running BizTalk Server will be reduced accordingly.
For the lab environment, a dedicated SAN was used and each of the three SQL Server computers was connected to the SAN switch with a 4-GB host bus adapter (HBA). 8 GB of throughput was available between the SAN switch and the SAN itself. The SAN has two 350 MB controllers, therefore providing a maximum of 700 MB throughput.
The following LUN configuration was used for each of the three computers running SQL Server in the test environment.
| Drive letter | Volume name | Files | LUN size (GB) | Cluster size |
|---|---|---|---|---|
|
C |
Windows |
MASTER,MSDB, and MODEL database data and log files |
68 |
64 KB |
|
F |
Data_Sys |
BizTalk Server MessageBox database PREDICATE_INDEXES files |
10 |
64 KB |
|
G |
Logs_Sys |
BizTalk Server MessageBox database MESSAGE_INSTANCES files |
10 |
64 KB |
|
H |
Data_Tempdb |
TempDB data files and BizTalk Server MessageBox database MISC_DATA files |
50 |
64 KB |
|
I |
Logs_Tempdb |
TempDB log files and BizTalk Server MessageBox database MESSAGE_DATA files |
50 |
64 KB |
|
J |
Data_BtsMsgBox |
BizTalk Server MessageBox,SSO,DTA and Management database data files |
100 |
64 KB |
|
K |
Logs_BtsMsgBox |
BizTalk Server MessageBox,SSO,DTA and Management database log files |
100 |
64 KB |
|
L |
Data_Spare |
BizTalk Server MessageBox database MISC_INDEXES files |
10 |
64 KB |
|
M |
Data_BizTalkDataBases |
BizTalk Server database data PREDICATE_DATA files |
20 |
64 KB |
|
N |
Logs_BizTalkDataBases |
BizTalk Server MessageBox database MESSAGE_INDEXES files |
20 |
64 KB |
|
O |
Logs_Spare |
Not used for SQL files, used to store DTCLog file, as MSDTC cause frequent disk I/O |
20 |
64 KB |