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 ReportTranscript 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