Академический Документы
Профессиональный Документы
Культура Документы
Server
End-to-End
Ewan
Fairweather & Paolo Salvatori
Performance
BizTalk Customer Advisory Team
Testing
Guidance
Microsoft
Session Objectives
Session Agenda
Using LogParser To
Generate KPIs For
Your Results
Demo
Example results spreadsheet
from
a recent performance lab
Session Agenda
Assessing application performance
Key learnings
BizTalk Server performance
assessment
Methodology
Tools
Key Learnings
Platform Tuning
Key Learnings
Platform Tuning
Key Learnings
Platform Tuning CLR Hosting Threads
To prevent thread starvation, BizTalk needs
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Ser
vices\BTSSvc$hostname\CLR Hosting
DWORD entry
MaxIOThreads
MaxWorkerThreads
MinIOThreads
MinWorkerThreads
Default Value
Recommended
Value
3 20
4
100
25
100
11
1
2 25
25
Key Learnings
BizTalk Host Configuration
Split up the sending, receiving, processing,
Key Learnings
SQL Performance
Isolate BizTalk data and transaction log files
Pre-allocate space to prevent autogrowth at
run time
Create multiple data files of the same size,
one for each available core on the SQL
machine, for the TempDb
Add filegroups and files to the
BizTalkMsgBoxDb
Scale up the SQL Server resources
CPU, disk, memory
Separate BizTalk Databases across servers
Multiple MessageBox databases
Key Learnings
Low Latency
Internal message queue
MaxReceiveInterval parameter
500 ms default
BatchSize parameter
Turn off global tracking
Use inline sends
Key Learnings
Orchestrations (1 of 2)
Key Learnings
Orchestrations (2 of 2)
1
// Use an XmlReader object to read the content of the message part
using (XmlReader reader =(XmlReader)xlangMessage[0].RetrieveAs(typeof(XmlReader)))
{
...
}
// Retrieve the content of the message part as a string
2
using (string message =(XmlReader)xlangMessage[0].RetrieveAs(typeof(string)))
{
...
}
3
// Deserialize the content of the message part to an instance of a custom .NET class
using (RequestClass request =(XmlReader)xlangMessage[0].RetrieveAs(typeof(RequestClass)))
{
...
}
Key Learnings
Pipelines (1 of 2)
Key Learnings
Pipelines (2 of 2)
Optimizing BizTalk
Memory Usage
Demo
Streaming techniques that can be
used in pipelines
WCF Adapters
WCF-NetTcp Adapter
WCF-Custom Adapter + CustomBinding with the
binaryMessageEncoder and tcpTransport Binding Elements.
Send Side (BizTalk Send Port):
Parameter
tcpTransport->ConnectionPoolSettings>maxOutboundConnectionsPerEndpoint
tcpTransport->maxPendingAccepts
tcpTransport->maxPendingConnections
tcpTransport->listenBacklog
Default
Suggested
try changing to 20
1
10
10
try changing to 20
try changing to 20
try changing to 20
Default
Suggested
1
10
10
try changing to 20
try changing to 200
try changing to 20
Parameter
serviceThrottling->maxConcurrentCalls
serviceThrottling->maxConcurrentSessions
serviceThrottling->maxConcurrentInstances
Default
Suggested
16
10
-
try changing to 20
try changing to 20
leave the default
WCF Adapter
Demo
Optimizing WCF for performance
Session Agenda
Assessing application performance
Key learnings
BizTalk Server performance
assessment
Methodology
Tools
BizTalk Server
Performance
Optimization Guide
Announcing
MSDN
http://msdn.microsoft.com/en-us/library/cc558617.asp
x
Assessing Application
Performance
This is a problem
Solutions using BizTalk tend to be
business critical and tolerate little
downtime
Poor testing increases the risk profile of
your project
This runs the risk of huge technical and
Unit testing
Effective
Functional testing
testing
Integration testing
reduces your
User acceptance testing project risk
Disaster recovery testing/dry runs
Overload testing
Performance assessment
Session Agenda
Assessing application performance
Key learnings
BizTalk Server performance
assessment
Methodology
Tools
BizTalk Performance
Assessment
POC
Performance
Assessment
Pre-Live
Performance
Assessment
Post-Live
Performance
Assessment
Scope
Engagement Summary
Determine resource requirements
Other requirements
Throughput
Latency
Scope
Defining Goals
Provide objectives and success criteria for
the lab
Goals should cover
Performance metrics
Throughput, Latency
Scope
Defining Goals (Example)
Objective
Measure the Maximum Sustainable Throughput (MST) for the
given use cases with different hardware configurations.
Test Case 1
Messaging-Only scenario
Throughput : 50 messages/sec sustainable
Latency: response time < 2 sec
for 90% of messages
Test Case 2
Payment service BizTalk orchestration
Throughput : 3.6 million messages within
an 8 hour period (125 messages/second)
Latency : N/A
Scope
Logical and Physical Architecture
Plan
Determining Resource Requirements
Timeline
SMEs required
MQSeries, SQL Server,
IIS, SAN Specialist
Hardware request
SAN Storage (HBA, Luns), Networking, Clustering
Lab space
Appropriate space, whiteboard, projector, security of
room
Plan
Sample Timeline
6
4
5
Prepare
Functional test
BizUnit, Visual Studio
Load test
Loadgen, Visual Studio
Installation
and Configuration
RAID10/0+1?
BizTalk
Host configuration
Message tracking
Adapter configuration
Deployment
MSBuild, BTSTask, MSI
Functional testing
Validate automated load test
Document Solution
Performance Baseline
Latency
Throughput
Spool depth
etc
Document results
KPIs, Check after every run
Session Agenda
Assessing application performance
Key learnings
BizTalk Server performance
assessment
Methodology
Tools
Helpful Tools
Related Content
MSDN Guidance
Microsoft BizTalk Server Performance Optimization Guide
http://msdn.microsoft.com/en-us/library/cc558617.aspx
Microsoft BizTalk Server Operations Guide
http://msdn.microsoft.com/en-us/library/cc296643.aspx
BizTalk Server 2006 R2 Hyper-V Guide
http://msdn.microsoft.com/en-us/library/cc768518.aspx
Resources
http://msdn2.microsoft.com/en-us/library/aa972201.aspx
http://msdn2.microsoft.com/en-us/library/aa561567.aspx
http://technet.microsoft.com/en-us/library/aa548008.aspx
http://msdn2.microsoft.com/en-us/library/aa952929.aspx
Filegroup Resources
BizTalk Server Database Optimization
http://msdn.microsoft.com/en-us/library/bb743398.aspx
MQ Adapter Resources
Q&A
2008 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S.
and/or other countries.
The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond
to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after
the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.