/
Scaling OLTP Applications: Application Design and Hardware Scaling OLTP Applications: Application Design and Hardware

Scaling OLTP Applications: Application Design and Hardware - PowerPoint Presentation

test
test . @test
Follow
417 views
Uploaded On 2016-12-08

Scaling OLTP Applications: Application Design and Hardware - PPT Presentation

Srik Raghavan Principal Lead Program Manager srikrmicrosoftcom Kevin Cox Principal Program Manager kevincoxmicrosoftcom SESSION CODE DAT206 Scaling Online Transaction Processing Applications with SQL Server 2008 ID: 498931

server design oltp sql design server sql oltp microsoft 2008 memory workload high application scale applications table data performance query lock win

Share:

Link:

Embed:

Download Presentation from below link

Download Presentation The PPT/PDF document "Scaling OLTP Applications: Application D..." is the property of its rightful owner. Permission is granted to download and print the materials on this web site for personal, non-commercial use only, and to display it on your personal computer provided you do not modify the materials and that you retain all copyright notices contained in the materials. By downloading content from our website, you accept the terms of this agreement.


Presentation Transcript

Slide1

Scaling OLTP Applications: Application Design and Hardware Considerations

Srik RaghavanPrincipal Lead Program Managersrikr@microsoft.com

Kevin CoxPrincipal Program Managerkevincox@microsoft.com

SESSION CODE: DAT206

Scaling Online Transaction Processing Applications with SQL Server 2008Slide2

Session Summary

SQL Server is a proven platform for OLTP workloadsSQL Server 2008 R2 offers features to assist with OLTP scalabilityHow to design hardware and software for scalabilitySlide3

Agenda

OLTP workload characteristicsOLTP application design principlesScalability determinants and bottlenecks

SQL Server 2008 R2 Performance and Scale features DemoScaling Up – Hardware to the rescueSummarySlide4

OLTP Workload Characteristics

Typically used by line-of-business (LOB) applicationsHas both read-writeFine-grained inserts and updates High transaction throughput e.g., 10s K/secUsually very short transactions e.g., 1

–3 tablesSometimes multi-step e.g., financialRelatively small data sizesSlide5

Application Design Principles

LOGICAL DESIGN

PHYSICAL DESIGN

ER MODEL

INDEXES

Design to leverage

set-oriented processing power of SQL Server

Use development tools Visual Studio for Entity Framework design and DTA for tuning indexesSlide6

Entity Framework 4.0

Development ApproachesModel First development –  Start from a Model and then have T-SQL and customized code generated. Testing– New interface and guidance for building test suites faster.Architectural Advantages

Persistence Ignorance – Use your own classes without needing to introduce interfaces or other elementsApplications Patterns – Discussing patterns like the Repository and UnitOfWork patterns with guidance on how to use them with the Entity Framework Building N-Tier applications – Adding API’s and templates that make building N-Tier applications much easierSlide7

Exploring the Model

The Three Parts of the Model:

The image is taken from Julia Lerman’s book Programming Entity Framework, 1st EditionSlide8

Reverse Engineer DatabaseSlide9

Application Design Best Practices

Ensure good logical (E-R Model) and physical (indexes) DB designLeverage set-oriented processing power of SQL ServerUpdate Statistics – ensure it is up to date!Use DTA to assist with physical design

Avoid too many joinsNow let’s talk Physical DesignSlide10

Physical Design Best Practices

Reasons for Physical Design changesPerformanceAvailability SecurityAuditingSeparate logs and data if possibleSpend time doing index analysisTune OLTP systems for high I/O per second

Tune data warehouse for high throughput per secondSlide11

Clustered index guidelines

Good when queries select large number of adjacent rows (range queries)Create on the frequently used columns (in JOINs and WHERE with “=“, “<“, “>“, “BETWEEN”)If number of returned rows is small – non-clustered index may be as efficientPreferred on narrow and highly selective columns

Remember cost of maintenance:Updates reorganize the tablePerformance impactCauses index fragmentation over timeSlide12

Non-clustered index guidelines

Create for frequent search columnsUse on narrow and highly selective columnsPlace on foreign key constraints (for join queries)Check the workload for “covering” queriesConsider adding included columns

The drawback: maintenance costFrequent updates will ruin perf where there are too many indexesEvaluate benefits of [not] indexing small tablesSlide13

Agenda

OLTP workload characteristicsOLTP application design principlesScalability determinants and bottlenecks

SQL Server 2008 R2 Performance and Scale features DemoScaling Up – Hardware to the rescueSummarySlide14

OLTP Scalability Dimensions & Determinants

Dimensions

Transaction throughputNo. of concurrent usersData size and growth rateResourcesCPU

MemoryIONetworkKey Design Pattern for Scalability: Divide and ConquerSlide15

Typical CPU scaling issues

SymptomsPlan compilation and recompilations

Plan reuse < 90% is badParallel queriesParallel wait type cxpacket > 10% of total waits High runnable tasks or sos_scheduler_yield waits

CausesQueries not parameterized

Inefficient Query planNot enough stored proceduresMAXDOP is not set to 1Statistics not updatedTable scan, range scan

SET option changes within SP

Use stored procedures and

parameterize queries

where possibleSlide16

Typical IO Scaling Issues

SymptomsHigh average disk seconds per read (> 10 msec) and write (> 2 msec) for spindle based devices

Top 2 values for wait stats are one of - ASYNCH_IO_COMPLETION, IO_COMPLETION, LOGMGR, WRITELOG, PAGEIOLATCH_xCausesAggravated by Big IOs such as table scans (bad query plans)Non covering indexes

Sharing of storage backend – combine OLTP and DW workloadsTempDB bottleneckToo few spindles, HBA’s

OLTP applications

need to be designed for random I/O Slide17

Typical Blocking Issues

SymptomsHigh average row lock or latch waitsWill show up in sp_configure “blocked process threshold” and Profiler “Blocked process Report”

Top wait statistics are LCK_x. See sys.dm_os_wait_stats.CausesHigher isolation levelsIndex contentionLock escalationSlow I/OSequence number problem

Use RCSI/Snapshot

isolationSlide18

Typical Memory Issues

SymptomsPage life expectancy < 300 secsSQL Cache hit ratio < 99%

Lazy writes/sec constantly activeOut of memory errorsCausesToo many large scans (I/O)Bad query plans

External (other process) pressure

Eliminate table scans in query plans

Use WSRM for

non

SQLServer

processes on machineSlide19

Agenda

OLTP workload characteristicsOLTP application design principlesScalability determinants and bottlenecks

SQL Server 2008 R2 Performance and Scale features DemoScaling Up – Hardware to the rescueSummarySlide20

Performance and Scale Features in SQL Server 2008 R2

Better query plansPlan guidesOptimize for UnknownLock escalation hints

Resource governorTransparency and Diagnostics – Xevent, DMV’s> 64 thread supportDynamic affinity (hard or soft)Hot-add CPU supportData CompressionEspecially if you have I/O issues

PartitioningSnapshot Isolation, RCSIControl PointSlide21

Plan Guides

Guide optimizer to use a fixed query planHelps with plan predictabilityUse when you can’t change the applicationSimple exampleSELECT TOP 1 * FROM Sales.SalesOrderHeader ORDER BY OrderDate DESC;sp_create_plan_guide

@name = N'Guide2', @stmt = N'SELECT TOP 1 * FROM Sales.SalesOrderHeader ORDER BY OrderDate DESC', @type = N'SQL', @module_or_batch = NULL, @params = NULL, @hints = N'OPTION (MAXDOP 1)';Slide22

Optimize for Unknown

OPTIMIZE FOR UNKNOWNHint directs the query optimizer to treat as if no parameters values had been passedHelps solve case where specific parameter values in query result in a bad plan for other valuesExample@p1=1, @p2=9998,

SELECT * FROM t WHERE col > @p1 or col2 > @p2 ORDER BY col1 OPTION (OPTIMIZE FOR (@p1 UNKNOWN, @p2 UNKNOWN))Slide23

DemoSlide24

Lock Escalation Controls

Check if lock escalation is causing blocking before disablingDisable lock escalation at an object or table level Enable lock to be escalated to the partition of the tableIf the lock is escalated to partition (Hobt), it is not escalated further Alter table T1 set (LOCK_ESCALATION = DISABLE)Slide25

Resource Governor

BenefitsProvide deterministic Quality Of Service

Prevent run-away queriesTames ill behaved AppsDW & Consolidation scenariosSQL Server 2008 RG

Workloads are mapped to Resource Pools Online changes of groups and poolsReal-time Resource MonitoringUp to 20 Resource Pools

SQL Server 2008

Min Memory 10%

Max Memory 20%

Max CPU

20%

Admin Workload

Backup

Admin Tasks

OLTP Workload

OLTP

Activity

Report Workload

Ad-hoc

Reports

Executive

Reports

High

Max CPU 90%

Application Pool

Admin PoolSlide26

Extended Events (XEvent)

Extremely high performance and extensible event and trace mechanismDynamic data collection on event fireIntegrated with ETW (Event Tracing for Windows)Enables correlation with events exposed by Windows and third party applicationsHundreds of event points throughout SQL Server code base

Can identify session/statement level wait statisticsSlide27

Agenda

OLTP workload characteristicsOLTP application design principlesScalability determinants and bottlenecks

SQL Server 2008 R2 Performance and Scale features DemoScaling Up – Hardware to the rescueSummarySlide28

Core System Components

Disk

Subsystem

Server

NIC

Memory

Network

1

5

3

4

2

SQL

File

Layout

HBA

The key is to build a Balanced System without bottlenecks

SQL Server is only part of the equation.

Eco system needs to scale.Slide29

Concepts - NUMA

Front side bus contention increases w/ higher #CPUs

Symmetric Multiprocessor Architecture

Non-Uniform Memory Access

Local Memory Access

Foreign

Memory

Access

Foreign memory access > local memory access

> 64 thread support

exploits NUMASlide30

Disk Subsystem Configuration

TrendsDisk sizes grew by 100 times over last 10 years Disk access times only decreased by factor 10Disk configuration of high-end systems is not just

sizeof(data) but matter of expected I/O workload Solid State Disks now more prevalentConfiguration

Scale throughput with multiple HBA’s, spindlesIf using RAID 10 get HBA that can do simultaneous read of the mirrorsUse multipathing for load balancingHBA Queue Depth – default 32 too low at times

Configure to ensure healthy disk latencies < 10 msec

For OLTP Design for IO/sec

and data warehouse design for throughput

Slide31

Network

TrendsGigabit is standard today. Usable bandwidth typically ~350 Mbps10GBit Ethernet adapters available now – high demand for iSCSIBandwidth not always bottleneck cause

Lack of parallel processing of network interrupts ConfigurationUse Windows Server 2008Offers Distributed network DPC processingSuggest one NIC per NUMA node; maximum 4 to 8 cores per NIC

Use Adapter teamingUpgrade to Windows Server 2008 to gain these benefitsSlide32

Top statistics – SQL Server does Scale

Category

MetricLargest single database80 TBLargest table20 TBBiggest total data 1 customer

2.5 PBHighest transactions per second 1 db36,000

Fastest I/O subsystem in production18 GB/secFastest “real time” cube

15 sec latency

Data load for 1TB

20

minutes

Largest cube

4.2 TBSlide33

Summary

SQL Server 2008 R2 and Windows together offer an ecosystem to scale the most demanding OLTP applicationsGood application design is a precursor to great scalabilitySlide34

Complete the Evaluation Form & Win!

You could win a Dell Mini Netbook – every day – just for handing in your completed form! Each session form is another chance to win!

Pick up your Evaluation Form:Within each presentation roomAt the PASS Booth near registration areaDrop off your completed Form:Near the exit of each presentation roomAt the PASS Booth near registration area

Sponsored by DellSlide35

Visit the

Microsoft Technical Learning Center Located in the Expo Hall

Microsoft Ask the Experts LoungeMicrosoft Chalk Talk Theater PresentationsMicrosoft Partner VillageSlide36

Required Slide

Track PMs

will supply the content for this slide, which will be inserted during the final scrub.

DAT Track Scratch 2 Win

Find the DAT Track Surface Table in the Yellow Section of the TLCTry your luck to win a Zune HDSimply scratch the game pieces on the DAT Track Surface Table and Match 3 Zune HDs to winSlide37

Resources

Required Slide

www.microsoft.com/teched

Sessions On-Demand & Community

Microsoft Certification & Training Resources

Resources for IT Professionals

Resources for Developers

www.microsoft.com/learning

http://microsoft.com/technet

http://microsoft.com/msdn

LearningSlide38

Complete an evaluation on

CommNet

and

enter to win!

Required SlideSlide39

Sign up for Tech·Ed 2011 and save $500

starting June 8 – June 31st

http://northamerica.msteched.com/registration

 You can also register at the

North America 2011 kiosk located at

registration

Join us in Atlanta next year

Slide40

©

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.Slide41

AppendixSlide42

Required Slide