Scaling Up and Out your Virtualized SQL Servers

Post on 12-Jul-2015

168 views 2 download

transcript

Scaling Up and Out Your Virtualized

SQL Servers

#devconnections

SCALING UP AND OUT YOUR VIRTUALIZED SQL SERVERS

About Ben DeBow• Partner - SQLHA• Working with SQL Server for 20 years• Author, speaker, and consultant focusing on Performance,

Scalability, and Availability

bdebow@sqlha.com @BBQSQL sqlha.com

#devconnections

SCALING UP AND OUT YOUR VIRTUALIZED SQL SERVERS

About David Klee

#devconnections

@kleegeekdavidklee.netgplus.to/kleegeeklinked.com/a/davidaklee

Specialties / Focus Areas / Passions:

• Performance Tuning• Virtualization• Infrastructure• Troubleshooting

• High Availability• Disaster Recovery• Capacity Management• Health & Efficiency

SCALING UP AND OUT YOUR VIRTUALIZED SQL SERVERS

Agenda• Scale Out vs. Scale Up• Scale In• “Right-Sizing”• Efficiency• Workload characteristics

#devconnections

SCALING UP AND OUT YOUR VIRTUALIZED SQL SERVERS

Scalability• Scale up = vertical scaling• Vertical scaling = single instance faster• Horizontal– Data dependent routing– Read Only Replicas– Peer to Peer Replication

#devconnections

SCALING UP AND OUT YOUR VIRTUALIZED SQL SERVERS

Scale Out vs. Scale Up• Age-old problem• One server to thousands• Now introduce virtualization

#devconnections

SCALING UP AND OUT YOUR VIRTUALIZED SQL SERVERS

Scale Up

PROS• Single system / app

distribution• Faster & quicker

CONS• Single server bottlenecks• Scalability limits• Internal SQL Server

contention• More expensive

hardware

#devconnections

SCALING UP AND OUT YOUR VIRTUALIZED SQL SERVERS

Scale Out

PROS• Separation of

workloads• Smaller VMs• More agile VMs• Load balance• Outages impact less

CONS• Licensing• Management• Day-to-day operations• Complexity

#devconnections

SCALING UP AND OUT YOUR VIRTUALIZED SQL SERVERS

Scale IN First• Efficiency, health, and bottleneck

analysis• Limited upsides to more hardware• Performance gains without more

resources

#devconnections

SCALING UP AND OUT YOUR VIRTUALIZED SQL SERVERS

Bottleneck Analysis• Underneath the VM• VM config and placement• SQL Server instance• SQL Server database• Determine tipping points

#devconnections

SCALING UP AND OUT YOUR VIRTUALIZED SQL SERVERS

Bottleneck Example - Storage

#devconnections

ControllerController

ControllerController

LUNLUN

LUNLUN

LUNLUN

LUNLUN

Disk PoolDisk Pool

VM

VM

VM

VM

SCALING UP AND OUT YOUR VIRTUALIZED SQL SERVERS

VM Configuration• Start with gold certified template• Adjust resources• One size does not fit all

#devconnections

SCALING UP AND OUT YOUR VIRTUALIZED SQL SERVERS

“Right-Sizing”• What? How?• Resource allocations–What is needed now

• Type of workload• vNUMA

#devconnections

SCALING UP AND OUT YOUR VIRTUALIZED SQL SERVERS

Leverage VM Infrastructure• VM proximity

#devconnections

SCALING UP AND OUT YOUR VIRTUALIZED SQL SERVERS

Leverage VM Infrastructure• Transparent SSD read / write caching– Per vDisk

#devconnections

SSD

SANSAN

LUNLUN

LUNLUN

SCALING UP AND OUT YOUR VIRTUALIZED SQL SERVERS

Priority Tiers• Mission-critical production vs.

everything else• Tier / prioritize resource queues• Separation of tiers

#devconnections

SCALING UP AND OUT YOUR VIRTUALIZED SQL SERVERS

Add Hardware• Faster CPUs / more cores• More RAM• Faster storage (IOps / latency)• Faster / more interconnects– Storage fabric– Networking

#devconnections

SCALING UP AND OUT YOUR VIRTUALIZED SQL SERVERS

Efficiency - Concurrency• Locking & blocking• Read Committed Snapshot Isolation• Asynchronous handling– Service Broker– SSIS– PoSH

#devconnections

SCALING UP AND OUT YOUR VIRTUALIZED SQL SERVERS

Efficiency - Code Review• Schema design• Strongly typed data types• Queries & procedures• App data handling• …. And the list continues forever…

#devconnections

SCALING UP AND OUT YOUR VIRTUALIZED SQL SERVERS

Efficiency - CPU• Cores & schedulers• Hyper-Threading• vNUMA

#devconnections

SCALING UP AND OUT YOUR VIRTUALIZED SQL SERVERS

CPU Sizing – vNUMA Results31% Improvement

31% Improvement

• Example: 16 vCPU VM• What’s better?

• 2 vSocket x 8 vCore?• 4 vSocket x 4 vCore?• 8 vSocket x 2 vCore?

• Varies by workload, hardware

• Test it for yourself!

#devconnections

SCALING UP AND OUT YOUR VIRTUALIZED SQL SERVERS

Efficiency - Memory• Use memory to reduce I/O• Use less memory with better efficiency• Schema & index strategies• Data & index compression• Buffer pool extensions

#devconnections

SCALING UP AND OUT YOUR VIRTUALIZED SQL SERVERS

Efficiency - Storage• Goal: reduce I/O consumption• Better distribution of workload– Tables– Data Files – File groups– Partitions

#devconnections

Virtual disksPathsControllersLUNs

SCALING UP AND OUT YOUR VIRTUALIZED SQL SERVERS

#devconnections

SAN

DB

E:

FG1

FG2

DF4

DF3

DF2

DF1

G:

F:

SCALING UP AND OUT YOUR VIRTUALIZED SQL SERVERS

Efficiency - Storage• Data / index compression• Indexing strategies• Datatype analysis• In-memory constructs• Buffer pool extensions

#devconnections

SCALING UP AND OUT YOUR VIRTUALIZED SQL SERVERS

Segregating Workloads• One VM per purpose• Offload read-only activities– Availability Groups– Replication– Backups

• Sharding / data dependent routing#devconnections

SCALING UP AND OUT YOUR VIRTUALIZED SQL SERVERS

Workload Characteristics• Monitoring• Workload performance stat collection– At all layers

• Aggregation by host & cluster• Analysis

#devconnections

SCALING UP AND OUT YOUR VIRTUALIZED SQL SERVERS

Ongoing Review• Routine “right-sizing” analysis• Capacity analysis & planning• Baselines• What to capture and analyze?

#devconnections

SCALING UP AND OUT YOUR VIRTUALIZED SQL SERVERS

Conclusions• Efficient virtualization• Workload characterization• Bottleneck relief• Long-term management

#devconnections

SCALING UP AND OUT YOUR VIRTUALIZED SQL SERVERS

QUESTIONS?

#devconnections

SCALING UP AND OUT YOUR VIRTUALIZED SQL SERVERS

THANK YOU!

#devconnections

SESSION TITLE

#devconnections

Rate This Session Now!Rate with Mobile App:1. Select the session from the

Agenda or Speakers menus

2. Select the Actions tab

3. Click Rate Session

Rate Using Our Website:1. Register at www.devconnections.com/logintoratesession

2. Go to www.devconnections.com/ratesession

3. Select this session from the list and rate it

Tell Us What

You Thought

of This Session

Be Entered to

WINPrizes!