1 / 43

BizTalk Server Performance: Configuring BizTalk Server for Performance

BizTalk Server Performance: Configuring BizTalk Server for Performance. Paolo Salvatori Senior Program Manager AppFabric Customer Advisory Team Microsoft. Mikael Håkansson BizTalk Server MVP Solution Architect Enfo Zystems. Zündapp ZD20 1976.

diandra
Download Presentation

BizTalk Server Performance: Configuring BizTalk Server for Performance

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. BizTalk Server Performance: Configuring BizTalk Server for Performance Paolo Salvatori Senior Program Manager AppFabric Customer Advisory Team Microsoft Mikael Håkansson BizTalk Server MVP Solution Architect EnfoZystems

  2. Zündapp ZD20 1976 This picture has been released into the public domain by its author, ChiemseeMan at the German Wikipedia project

  3. BizTalk Server Performance: Configuring BizTalk Server for Performance Paolo Salvatori Senior Program Manager BizTalk Customer Advisory Team Microsoft Mikael Håkansson BizTalk Server MVP Solution Architect EnfoZystems

  4. -”So what’s in it for me?” Howtominimize the risk of BizTalk becoming a hot spot?

  5. Session overview First Test ”Base-line” Apply Settings Introduction Configuration Best Practices Re-run Test

  6. Goal -”For you as a IT-Pro / Developerto be abletohelpyourcustomers / employertobetterleveragetheir BizTalk Server investment.”

  7. Verify & Configure Setup Configure Test BizTalk Server 2009 Performance Optimization Guide BizTalk Server Best Practices Analyzer BizTalk Benchmark Wizard

  8. The BizTalk Benchmark Wizard The ”Back-end service” BizTalk Benchmark Wizard Received msgs/sec Processed msgs/sec WCF One-Way Receive Location WCF One-Way Send port netTcp netTcp Passthrough Passthrough BizTalkMsgBoxDb

  9. TestedEnvironments

  10. First test – ”Baseline” demo

  11. BizTalkperformance SQLperformance Storageperformance ”But I’m a Developer!!! I am not meant to know about this stuff. The X department take care of that.”

  12. Roles I’ll let him share the disk array with the SAP system.. I like to order a SQL cluster with 12 disks... I like to order 12 LUNS... ”the BizTalk guy” ”the SQL guy” ”the Storage guy”

  13. Sometimes, separating resources relieves internal contention…

  14. Eliminating bottlenecks Data Log

  15. PFS Contention Data file PFS Page

  16. PFS ContentionResolved Data Data Data Data

  17. Multiple files and filegroups for the BizTalk MsgBoxDb Primary (default file group) Misc Data Misc Indexes Predicate Data Predicate Indexes Message Data Message Indexes For more information: BizTalk Server MessageBox Database Filegroups SQL Script

  18. Sometimes, it’sbettertokeep it together…

  19. Text In Row table option Data file * * * * * * LOB data types = LargeOBject data types

  20. Text In Row table option EXECsp_tableoptionN'Parts' 'text in row','4000‘ EXECsp_tableoptionN‘Spool' 'text in row','4000‘ EXECsp_tableoptionN'DynamicStateInfo_[HOST]' 'text in row','4000' *There are one DynamicStateInfo table per host.

  21. Tune TempDB for Best Performance Creating multiple data files of the same size, one for each available CPU core on the SQL machine, for the TempDb, makes it possible to spread I/O contention across multiple files. The SQL CAT team has also found that in 2005 and 2008, there's usually no gain from having more than 8 tempdb data files, even for systems with larger numbers of processor cores. Implementing Trace Flag –T1118 helps reduce contention across the SQL Server instances by removing almost all single page allocations

  22. I/O is important…

  23. I/O Contention Data Data Data Data

  24. The Traditional Hard Disk Drive Cover mounting holes (cover not shown) Base casting Spindle Slider (and head) Case mounting holes Actuator arm Platters Actuator axis Actuator Flex Circuit (attaches heads to logic board) SATA interface connector Power connector Performance: 200-250 IO Per Second (IOPS)

  25. The “New” Hard Disk Drive (SSD) • No moving parts! Performance: 4000-4500 Read IO Per Second (IOPS) Less writes! 1500 Write IOPS

  26. Normal Behavior During Checkpoint Checkpoint Activity These are short-lived burst of writes with a large amount of outstanding I/O requests. It is normal for latency to increase a bit during this operation. Hosting BizTalk databases on poor performing disks, a SQL checkpoint can cause a message processing drop. High throughput storage for SQL Server data and log files is absolutely critical to BizTalk performance. Latency (response time) Reads are in the 5-6ms range and writes 1-2ms with spikes to 20-30ms during checkpoints.

  27. SAN Storage DB I/O Controller / HBA Cabling Array Cache Spindle Windows PCI Bus CPU SQL Serv. Key Takeaway: This is NOT going to be easy…

  28. SAN Storage - Simplyfied I’ll let him share the disk array with the SAP system.. LUN ”Disk Array” LUN Key Takeaway: There might be a conflict of interest… ”the Storage guy” RAID 5 RAID 10

  29. RAID- Simplyfied RAID 1 (Mirroring) RAID 0 (Striping) RAID 5 (Distributed parity) RAID 10 (1+0) (Mirroring + Spriping) + Very fast - No redundancy + Cost efficient + Fault-tolerant + Good performance - The extra time required to calculate and store parity degrades the write performance + Total data redundancy - Slow - Expensive + Total data redundancy + Increased write transfer rate - Expensive

  30. I/O Sizing for SQL Server - OLTP • Do: Base sizing on spindle count needed to support the IOPs requirements with healthy latencies • Don’t: Size on capacity • Consider short stroking to get more IOPS / spindle • Remember the RAID level impact on writes (2x RAID 10, 4x RAID 5) • Cache hit rates or ability of cache to absorb writes may improve these numbers • RAID 5 may benefit from larger I/O sizes • Important: Critical to ensure low I/O latency on transaction log writes • Log response impacts transaction reponse times • High end systems should seek to keep latency <1ms • Important: Test the effects of a CHECKPOINT operation. • Often good idea to have enough write-cache to absorb it

  31. Sizing I/O • A whole other talk in itself • Fortunately, some of the SQLCAT team have written this up  • Analyzing I/O Characteristics and Sizing Storage Systems for SQL Server Database Applications http://sqlcat.com/whitepapers/archive/2010/05/10/analyzing-i-o-characteristics-and-sizing-storage-systems-for-sql-server-database-applications.aspx

  32. Pipeline components • Stream-based approach to pipeline components • Processing in the stream implementation instead of the Execute method • YossiDahan’s WP on MSDN: “Developing a Streaming Pipeline Component” • Take advantage of BizTalk’s pipeline components • VirtualStream and readOnlySeekableStream • Also in source-code in the BizTalk SDK • XPathMutatorStream • NamespaceTranslatorStream and XmlTranslatorStream • Use PassThruReceive and PassThruTransmit pipelines whenever possible • Promote items to the message context only if you need them for: • Message Routing (Orchestrations, Send Ports) • Demotion of message context properties (Send Ports) • Use the IPipelineContext.ResourceTracker to track and dispose non-CLR resources • Instrument your source code to make your components simple to debug • Avoid ordered delivery and transaction support whenever possible

  33. Orchestrations • Tune the orchestration dehydration settings per the BizTalk Operations / Performance Guides • E.g. VirtualMemoryThrottlingCriteria • Eliminate persistence points when possible • Take advantage of Atomic Scopes. • Keep orchestration state as small as possible • Create variables and messages late and release early • Use Scope shapes to your advantage • Use static methods on .NET classes • Eliminate unnecessary context properties and distinguished fields

  34. BizTalk 2010 Host-level Polling Interval !!!

  35. Opitmizing BizTalk for LowLatency demo

  36. To-do list... Separate the Data- and Log files on different drives. (Applies to MsgBox, DTA & tempDB) Partition Data files on MsgBox, DTA & tempDB Separate Indexes and less used tables from tables such as the Spool and Part table. Exploit Text in row for Parts and Spool table Allocateenough storage Enable the –T1118 flag

  37. Applyconfigurationand re-run the test demo

  38. Zündapp ZD20 1976 This picture has been released into the public domain by its author, ChiemseeMan at the German Wikipedia project

  39. References • Mikael Håkansson Personal Blog: • http://blogical.se/blogs/mikael/ • Paolo Salvatori Personal Blog: • http://blogs.msdn.com/b/paolos/ • Windows Server AppFabric CAT Blog: • http://blogs.msdn.com/b/appfabriccat/

  40. For more information... Related sessions: Wednesday, November 10  |  4:00 PM - 5:00 PM DAT303-IS - Performance Scalability and Reliability on Mission Critical Applications with Microsoft SQL Server 2008 R2 and Windows Server 2008 R2 Thursday, November 11  |  4:30 PM - 5:30 PM ASI204 - Biztalk Server - What is it, What's new, What's next • PerformanceAnalysis of Logs (PAL)tool • BizTalk Server 2009 Performance Optimization Guide • BizTalk Server 2006 Best Practices Analyzer • The BizTalk Server 2009 Scale Out Testing Study • BizTalk Benchmark Wizard • BizTalk Server MessageBox Database Filegroups SQL Script

  41. Session Evaluations Tell us what you think, and you could win! All evaluations submitted are automatically entered into a daily prize draw*  Sign-in to the Schedule Builder at http://europe.msteched.com/topic/list/ * Details of prize draw rules can be obtained from the Information Desk.

  42. © 2010 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.

More Related