Ewan Fairweather & Petr Kratochvil BPD Customer Experience Team Microsoft Session Objectives Quantify BizTalk Server 2009 performance vs. BizTalk Server 2006 R2 Quantify performance of.

Download Report

Transcript Ewan Fairweather & Petr Kratochvil BPD Customer Experience Team Microsoft Session Objectives Quantify BizTalk Server 2009 performance vs. BizTalk Server 2006 R2 Quantify performance of.

Ewan Fairweather & Petr Kratochvil
BPD Customer Experience Team
Microsoft
Session Objectives
Quantify BizTalk Server 2009 performance vs.
BizTalk Server 2006 R2
Quantify performance of BizTalk Server 2009 on
“Hyper-V”
Provide guidance on how to effectively
performance test BizTalk 2009
Microsoft Confidential
Session Agenda
Background
Goals
Use cases
R2 vs. 2009 Performance Comparison
Optimizing platform
Optimizing application design
Hyper-V Performance
Conclusion
Microsoft Confidential
Who we are
Petr Kratochvil
Lead
HQ
Ewan
Fairweather
(PM)
US- West
Focused on:
Performance
4
Rama
Ramani
(PM)
US
Focused on:
RFID, Architecture Design
Tim
Wieman
(Senior PM)
US-Central
Focused on:
Operational Readiness
Paolo
Salvatori
(Principal PM)
EMEA
Focused on:
Architecture Design
Quoc Bui
( Senior PM)
Asia
Focused on:
Architecture Design,
Operational Readiness
BizTalk 2009 MSDN Guidance
Product Release Cycle
CAT & UE
Beta
RTM
Deliver ADR to TAP
Customers
Enterprise Customer
Engagements
Performance and
Hyper-V Boot Camp
Deliver MSDN Hyper-V
Guidance
Deliver MSDN
Performance Guidance
All Guides are published to:
MSDN, TechNet ,CHM
End to end samples:
Sample application
BizUnit scripts
LogParser scripts
Visual Studio Load Tests
Microsoft Confidential
RTM + 90
Deliver MSDN
Operational Guidance
Denotes investment
Denotes delivery
BizTalk Performance Story
The usual story
We all know testing is important for every solution
Testing is neglected
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 political problems
Our labs have shown that infrastructure tuning alone can
double performance in some cases
Microsoft Confidential
Session Agenda
Background
Goals
Use cases
R2 vs. 2009 Performance Comparison
Optimizing infrastructure
Optimizing application design
Hyper-V Performance
Conclusion
Microsoft Confidential
BizTalk 2009 Performance Lab Goals
Technical Goals:
• Quantify BizTalk Server 2009 (2009) vs. BizTalk Server 2006 R2 (R2)
• Quantify performance of physical vs. “Hyper-V” BizTalk Server 2009
• Quantify performance of physical vs. “ Hyper-V”SQL Server 2008
• Quantify performance of consolidating BizTalk/SQL on “Hyper-V”
Use Case 1:
Logical Ports WCF Orchestration scenario
Use Case 2:
Inline Sends Orchestration Scenario
Conditions:
• Perform optimizations on 2009, R2, Hyper-V
• Determine delta of:
•
•
•
•
8
Throughput # of calls within 8 hours
Latency
Identical infrastructure for all platforms
Apply infrastructure optimizations first, then application optimizations
Session Agenda
Background
Goals
Use cases
R2 vs. 2009 Performance Comparison
Optimizing infrastructure
Optimizing application design
Hyper-V Performance
Conclusion
Microsoft Confidential
Inline Sends and Logical Ports
Logical Port
Orchestration
Vs.
Inline Sends
Orchestration
10
Calculator Request
<CalculatorRequest mlns="http://Microsoft.BizTalk.CAT.Samples.Schemas.CalculatorRequest">
<Method>XmlDocumentOrchestration</Method>
<Operations>
<Operation>
<Operator>+</Operator>
<Operand1>82</Operand1>
<Operand2>18</Operand2>
</Operation>
<Operation>
<Operator>-</Operator>
<Operand1>30</Operand1>
<Operand2>12</Operand2>
</Operation>
<Operation>
<Operator>*</Operator>
<Operand1>25</Operand1>
<Operand2>8</Operand2>
</Operation>
<Operation>
<Operator>\</Operator>
<Operand1>100</Operand1>
<Operand2>25</Operand2>
</Operation>
<Operation>
<Operator>+</Operator>
<Operand1>100</Operand1>
<Operand2>32</Operand2>
</Operation>
</Operations>
</CalculatorRequest>
11
Calculator Response
<CalculatorResponse xmlns="http://Microsoft.BizTalk.CAT.Samples.Schemas.CalculatorResponse">
<Status>Ok</Status>
<Results>
<Result>
<Value>100</Value>
<Error>None</Error>
</Result>
<Result>
<Value>18</Value>
<Error>None</Error>
</Result>
<Result>
<Value>200</Value>
<Error>None</Error>
</Result>
<Result>
<Value>4</Value>
<Error>None</Error>
</Result>
<Result>
<Value>132</Value>
<Error>None</Error>
</Result>
</Results>
</CalculatorResponse>
12
Code Walk-Through
Inline Sends and Logical Ports examples
13
Session Agenda
Background
Goals
Use cases
R2 vs. 2009 Performance Comparison
Optimizing platform
Optimizing application design
Hyper-V Performance
Conclusion
Microsoft Confidential
Lab Hardware Kit - Overview
Vs.
Name
Model
CPU Type
# of CPUs
# of Cores/CPU
Architecture
RAM
Min Local Disks
OS
Software
TAP2X-L04
DL380 G5
Intel Xeon
2 x 2.33 Ghz
4
x64
8 GB
3 x 72gb 10k SAS Win2k8 EE 64bit
BizTalk 2009
TAP2X-L03
DL380 G5
Intel Xeon
2 x 2.33 Ghz
4
x64
8 GB
3 x 72gb 10k SAS Win2k8 EE 64bit
BizTalk 2009
TAP2X-L02
DL380 G5
Intel Xeon
2 x 2.33 Ghz
4
x64
8 GB
3 x 72gb 10k SAS
TAP2X-L01
DL380 G5
Intel Xeon
2 x 2.33 Ghz
4
x64
8 GB
TAP4x-M01
BL680
Intel Xeon
4 Proc (2.4 Ghz)
4
x64
32GB
TAP4x-O01
BL680
Intel Xeon
4 Proc (2.4 Ghz )
4
x64
32GB
Win2k3 R2 SP2
BizTalk 2006 R2
EE 64bit
Win2k3 R2 SP2
3 x 72gb 10k SAS
BizTalk 2006 R2
EE 64bit
Win2k3 R2 SP2
3 x 72gb 10k SAS
SQL Server 2005
EE 64bit
3 x 72gb 10k SAS Win2k8 EE 64bit SQL Server 2008
Platform Optimizations
They are grouped into the following categories:
Platform Optimizations
SQL Server Optimizations: General (all SQL Servers)
SQL Server Optimizations: BizTalk Databases
BizTalk Optimizations
If appropriate:
SQL Server Optimizations: Custom Databases
18
With 64 bit defaults - Results are not always what they seem
Concurrent
Test
Test Client
Users
Test Case 1 Baseline
Messages Per
Second
Avg
Response
(s)
%<3
seconds
Messages Per
Day
Test Length
R2 – 32 Bit
Orch
100
45.4
2.24
94.36
~1,309,000
10 minutes
2009 - 64 bit
Orch
100
34.3
2.89
75.45
~987,000
10 minutes
Test Case 1 Optimized
R2 64 bit Orch
100
58.06
1.69
97.5
~1,672,000
10 minutes
2009* 64 Bit
Orch
100
60.64
1.61
97.97
~1,746,000
10 minutes
Baseline Comparison
~27% throughput improvement R2
~77% throughput improvement 2009
*Excessive dehydration was occurring, dehydration settings were non-optimal for
64 bit host
~25% latency improvement R2
~45% latency improvement 2009
Microsoft Confidential
Troubleshooting Dehydration
Counters to use:
Process\Virtual Bytes
Process\Private Bytes
20
VirtualMemoryThrottlingCriteria
PrivateMemoryThrottlingCriteria
Setting
Original (MB)
Optimization Applied
(MB)
Virtual Memory
900
6000
Private Memory
50
700
Determining Dehydration Values Using Perfmon
Virtual Bytes ~ 5.4 GB
Private Bytes increases under load max
~600MB
21
Optimizing Dehydration
Default
Optimized
<xlangs>
<Configuration
>
OptimalUsage=“900" MaximalUsage=“1300"
OptimalUsage=“50" MaximalUsage=“350"
OptimalUsage="700" MaximalUsage="1000"
Setting
VirtualMemoryThrottlingCriteria
PrivateMemoryThrottlingCriteria
22
<Dehydration>
<VirtualMemoryThrottlingCriteria
OptimalUsage="6000"
MaximalUsage="6300" IsActive="true" />
<PrivateMemoryThrottlingCriteria
OptimalUsage="700" MaximalUsage="1000"
IsActive="true" />
<PhysicalMemoryThrottlingCriteria
OptimalUsage="700" MaximalUsage="1000"
IsActive="false" /> </Dehydration>
</Configuration>
</xlangs>
Counter To Use
Optimizing 64 Bit Dehydration Settings
Concurrent
Messages Per
Test
Test Client
Second
Users
32 Bit Orchestration Host Default Config File
Avg
Response
(seconds)
%<3
seconds
Messages Per
Day
Test Length
R2
100
55.82
1.75
95.57 ~1,607,000
10 minutes
2009
100
56.25
1.74
95.31 ~1,620,000
10 minutes
64 Bit Orchestration Host Default Config File
R2
100
45.63
2.15
95.85 ~1,314,000
10 minutes
2009
100
45.49
2.16
88.95 ~1,310,000
10 minutes
64 Bit Orchestration Host –Optimized Config File
R2
100
58.06
1.69
97.5 ~1,672,000
10 minutes
2009
100
60.64
1.61
97.97 ~1,746,000
10 minutes
• Tuning dehydration settings on 64 bit host:
• Improved throughput by 27% (R2) & 33% (2009)
Microsoft Confidential
Session Agenda
Background
Goals
Use cases
R2 vs. 2009 Performance Comparison
Optimizing platform
Optimizing application design
Hyper-V Performance
Conclusion
Microsoft Confidential
Inline Sends Performance Improvement
Constant Load
Concurrent
Test
Test Client
Users
Logical Ports – Constant Load
2009
100
Messages Per
Second
Avg
Response
(sec)
%<3
seconds
60.64
1.61
236.96
Messages Per
Day
Test Length
97.97
~1,746,000
10 minutes
0.24
99.98
~6,824,000
10 minutes
Messages Per
Second
Avg
Response
(sec)
%<3
seconds
Messages Per
Day
Test Length
64.9
6.51
18.43
~1,869,000
30 minutes
148.15
0.23
99.98
~4,262,000
30 minutes
Inline Sends – Constant Load
2009
100
Stair Step Load
Concurrent
Test
Test Client
Users
Logical Ports – Stair Step Load
2009
100-800
Inline Sends – Stair Step Load
2009
100-800
Low Latency
4x throughput improvement in this scenario under constant load
Useful for scatter-gather pattern
Session Agenda
Background
Goals
Use cases
R2 vs. 2009 Performance Comparison
Optimizing platform
Optimizing application design
Hyper-V Performance
Conclusion
Microsoft Confidential
The BizTalk 2009 Hyper-V Guide
MSDN
http://msdn.microsoft.com/en-us/library/dd722825.aspx
27
Hyper-V Architecture
1
Root Partition
3
Child Partition
Child Partition
Server
Server
2 VSPs
VSPs
I/O
Stack
I/O
Stack
4
Drivers
VMBus
5
I/O
Stack
VSCs
Shared Memory
OS Kernel
Enlightenments
(WS08+)
VSCs
VMBus
Hypervisor
Devices
Processors
VHD - single file sits on root NTFS volume
Fixed, Dynamic, Differencing
Pass-through – exclusive disk access to guest
28
VMBus
Memory
Virtual Processor Allocation
1 to 1 Mapping
1
Overload Scenario
BizTalk Server
BizTalk Server
Virtual Processors
Virtual Processors
0
0
BizTalk Server
BizTalk Server
Virtual Processors
Virtual Processors
0
0
1
1
BizTalk Server
BizTalk Server
BizTalk Server
BizTalk Server
Virtual Processors
Virtual Processors
Virtual Processors
Virtual Processors
0
0
0
1
2
Logical Processors
29
2
0
3
0
1
0
1
2
Logical Processors
1
3
Physical BizTalk 2009 vs. Hyper-V BizTalk 2009
2
1
Vs.
3
•Physical and Hyper-V BizTalk Servers part of the same Group
Name
TAP2XL06
TAP2XL05
TAP2XL04
TAP2XL03
TAP4XO01
Model
CPU Type
# of CPUs
# of Cores/CPU
Architecture
RAM
DL380 G5
Intel Xeon
2 x 2.33 Ghz
4
x64
8 GB
DL380 G5
Intel Xeon
2 x 2.33 Ghz
4
x64
8 GB
DL380 G5
Intel Xeon
2 x 2.33 Ghz
4
x64
8 GB
DL380 G5
Intel Xeon
2 x 2.33 Ghz
4
x64
8 GB
BL680
Intel Xeon
4 Proc (Ghz TBC)
4
x64
32GB
Min Local Disks
OS
Software
3 x 72gb 10k
BizTalk 2009
Win2k8 EE 64bit
SAS
Hyper-V Images
3 x 72gb 10k
BizTalk 2009
Win2k8 EE 64bit
SAS
Hyper-V Images
3 x 72gb 10k
Win2k8 EE 64bit BizTalk 2009
SAS
3 x 72gb 10k
Win2k8 EE 64bit BizTalk 2009
SAS
3 x 72gb 10k
Win2k8 EE 64bit SQL Server 2008
SAS
Hyper-V Results – BizTalk Tier
Concurrent
Messages Per
Test
Test Client
Second
Users
Logical Ports on Optimized Platform
Avg
Response
(s)
%<3
seconds
2009
100
60.64
1.61
2009 Hyper-V
100
52.96
Messages Per
8-hour Day
Test Length
97.97
~1,746,000
10 minutes
1.86
94.8
~1,520,000
10 minutes
Inline Sends on Optimized Platform
2009
100
236.96
0.24
99.98
~6,824,000
10 minutes
2009 Hyper-V
100
223.54
0.28
99.87
~6,438,000
10 minutes
Hyper-V delivers ~87% throughput*
Hyper V delivers ~85% latency*
*Note: Calculated from Logical Ports Test
Hyper-V Summary – BizTalk Tier
Key BizTalk Performance Indicators
34.3
32.36
35
27.38
30
25
20.85333333
20
15
10
2.16
5
2.29
2.71
3.57
0
Baseline / BizTalk and
SQL on separate Physical BizTalk on Hyper-V / SQL
Hardware
on Physical Hardware
Latency / Request-Response
Latency (sec)
BizTalk and SQL on
Hyper-V / Separate
Hyper-V Host Computers
BizTalk and SQL on
Hyper-V / Consolidated
Hyper-V Host Computer
Throughput / Documents
processed per second
Hyper-V Summary – SQL Tier
Key SQL Performance Indicators
90.1
88
88.7
89.5
100
63.47
90
61.65
80
52.88
70
41.39
60
50
40
1
30
20
1
2
1
10
Totals Avg Disk Read (ms)
0
Baseline / BizTalk and
SQL on separate
Physical Hardware
Total Drives Disk Write (ms)
BizTalk on Hyper-V /
SQL on Physical
Hardware
BizTalk and SQL on
Hyper-V / Separate
Hyper-V Host
Computers
BizTalk and SQL on
Hyper-V /
Consolidated Hyper-V
Host Computer
SQL Server:SQL Statistics
Batch Requests/sec /100
SQL Processor Utilization %
Processor Lessons Learned
To measure Guest processors:
\Hyper-V Hypervisor Virtual Processor(*)\% Guest
Run Time
\Hyper-V Hypervisor Virtual Processor(*)\% Total
Run Time
To measure Physical processors:
\Hyper-V Hypervisor Logical Processor(*)\% Total
Run Time
To measure Host processors:
\Hyper-V Hypervisor Root Virtual Processor(*)\%
Total Run Time
34
Disk Lessons Learned
For VHD’s use:
<RootPartition>\Logical Disk(*)\Avg. sec/Read
<RootPartition>\Logical Disk(*)\Avg. sec/Write
<Guest>\Logical Disk(*)\Avg. sec/Read
<Guest>\Logical Disk(*)\Avg. sec/Write
For PassThrough Disk Analysis use:
“Hyper-V Virtual Storage Device” counters
xPerf Tool http://perftools
35
Pass-Through Disk Perf
Measurement
Physical SQL
Physical Disk
Virtual SQL
Pass-through
Disk
Difference
Transfers/Sec
269.73
250.47
7%*
Transfers (reads/writes) per second
Virtual SQL Pass-Through
Disk
Transfers (reads/writes)
per second
Physical SQL Physical
Disk
0
36
100
200
300
Disk Lessons Learned
Use PassThrough disks for high disk I/O:
BizTalk MessageBox Database
BizTalk Tracking Database
BizTalk File Adapter
%temp directory if BizTalk is streaming large files
37
Key Takeaways
Quantify BizTalk Server 2009 performance vs. BizTalk Server
2006 R2
3-5% improvement in 2009
W2K3 Networking optimizations did not improve performance on W2K8
in our lab
Quantify performance of BizTalk Server 2009 on “Hyper-V”
Approx 13% Hyper-V overhead for BizTalk tier. This is comparable to
other products.
SQL becomes CPU bound due to 4 VP limit
Provide guidance on how to effectively performance test BizTalk
2009
Visual Studio Testing Tools are a great driver for testing process
Sample code to be provided:
LoadTest Plug-In for BizUnit
Test application
VS Load Test Project
38
MSDN
http://msdn.microsoft.com/enus/library/dd722825.aspx
TechNet
http://technet.microsoft.com/enus/library/dd722825.aspx
39
Helpful Tools
BizTalk BPA
PerfMon
LoadGen
BizUnit
Log Man
Relog
Log Parser
PAL
SQLIO
BizTalk Orchestration Profiler
Microsoft Confidential
SQL Hyper-V Session
DAT 318 – Microsoft SQL Server 2008
Virtualization Considerations and Best Practices
Room: 152
Time: 9AM – 10:15AM
Microsoft Confidential
42
Resources
BizTalk Server 2006: Managing a Successful Performance Lab
http://msdn2.microsoft.com/en-us/library/aa972201.aspx
Scaling Your Solutions
http://msdn2.microsoft.com/en-us/library/aa561567.aspx
Configuration Parameters that Affect Adapter Performance
http://msdn2.microsoft.com/en-us/library/aa561380.aspx
Persistence and the Orchestration Engine
http://msdn2.microsoft.com/en-us/library/aa547090.aspx
Troubleshooting MessageBox Latency Issues
http://msdn2.microsoft.com/en-us/library/aa561709.aspx
Performance Tips and Tricks
http://msdn2.microsoft.com/en-us/library/aa560694.aspx
Rule Engine Configuration and Tuning Parameters
http://technet.microsoft.com/en-us/library/aa548008.aspx
Performance Considerations When Using the Rule Engine
http://msdn2.microsoft.com/en-us/library/aa952929.aspx
Microsoft Confidential
Filegroup – Resources
BizTalk Server Database Optimization
http://technet.microsoft.com/en-us/library/bb743398.aspx
Understanding Files and Filegroups
http://msdn2.microsoft.com/en-us/library/ms189563.aspx
How to: Add Data or Log Files to a Database (SQL Server Management
Studio)
http://msdn2.microsoft.com/en-us/library/ms189253.aspx
How to: Move an Existing Index to a Different Filegroup (SQL Server
Management Studio)
http://msdn2.microsoft.com/en-us/library/ms175905.aspx
Physical Database Files and Filegroups
http://msdn2.microsoft.com/en-us/library/ms179316.aspx
Working with tempdb in SQL Server 2005
http://www.microsoft.com/technet/prodtechnol/sql/2005/workingwithtempdb.
mspx
Optimizing Server Performance Using I/O Configuration Options
http://msdn2.microsoft.com/en-us/library/ms189892.aspx
Microsoft Confidential
Resources
www.microsoft.com/teched
www.microsoft.com/learning
Sessions On-Demand & Community
Microsoft Certification & Training Resources
http://microsoft.com/technet
http://microsoft.com/msdn
Resources for IT Professionals
Resources for Developers
www.microsoft.com/learning
Microsoft Certification and Training Resources
45
Complete an
evaluation on
CommNet and
enter to win!
46
© 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.
Microsoft Confidential
Ongoing Orchestration Performance Testing
Message processing performance
XMLDocument
XMLReader/XMLWriter and Virtual Stream
Custom Message Class
Test Messages
5 operations, 2 KB
500 operations, 125 KB
5000 operations 1243 KB
Ongoing Pipeline Performance Testing
Pipeline processing performance
XMLDocument
XMLReader
XPathReader
Test Messages
5 operations, 2 KB
500 operations, 125 KB
5000 operations 1243 KB
Appendix Memory Lessons Learned
VM’s require non-paged memory (physical
memory)
Ensure you have enough physical memory on
both the host and guest computers
Use Traditional Counters:
<RootPartition>\Memory\Available Mbytes
<Guest>\Memory\Available Mbytes
<RootPartition>\Memory\Pages/sec
<Guest>\Memory\Pages/sec
50
Appendix Network Lessons Learned
For high network I/O:
Use a 1:1 mapping of physical to virtual network
adapters
For measuring network adapters use:
<RootPartition>\Network Interface
Bytes Total Per Second
Output Queue Length
<RootPartition>\Hyper-V Virtual Network Adapter
Bytes Per Second
<RootPartition>\Hyper-V Virtual Switch
51
BizTalk Comparison Tier
2
1
Vs.
3
4
SQL Comparison Tier
5