Practical MySQL Performance Optimization€¦ · 3 In This Presentation We’l Look at how to...

60
Peter Zaitsev, CEO, Percona October 01, 2014 MySQL Central @ OOW San Francisco, CA Practical MySQL Performance Optimization

Transcript of Practical MySQL Performance Optimization€¦ · 3 In This Presentation We’l Look at how to...

Page 1: Practical MySQL Performance Optimization€¦ · 3 In This Presentation We’l Look at how to approach Performance Optimization Discuss Practical Performance Optimization Tips Look

Peter Zaitsev, CEO, Percona

October 01, 2014 MySQL Central @ OOW

San Francisco, CA

Practical MySQL Performance Optimization

Page 2: Practical MySQL Performance Optimization€¦ · 3 In This Presentation We’l Look at how to approach Performance Optimization Discuss Practical Performance Optimization Tips Look

www.percona.com 2

Unsafe Harbor Statement

To join my Oracle friends in their spirit I’m also adding the meaningless slide with a lot of text which no one really reads or cares about in the start of the presentation I am about to deliver. It is so good to be part of the private company when you do not have to worry about earning restatement or being sued by shareholders. Have you got to the end of this text? Wow you’re a fast reader.

Page 3: Practical MySQL Performance Optimization€¦ · 3 In This Presentation We’l Look at how to approach Performance Optimization Discuss Practical Performance Optimization Tips Look

www.percona.com 3

In This Presentation We’ll

Look at how to approach Performance Optimization

Discuss Practical Performance Optimization Tips

Look at the Tools which can help us

Page 4: Practical MySQL Performance Optimization€¦ · 3 In This Presentation We’l Look at how to approach Performance Optimization Discuss Practical Performance Optimization Tips Look

www.percona.com 4

First Things First

MySQL Performance does not Matter!

Page 5: Practical MySQL Performance Optimization€¦ · 3 In This Presentation We’l Look at how to approach Performance Optimization Discuss Practical Performance Optimization Tips Look

www.percona.com 5

What DOES Matter?

Application Performance!

Page 6: Practical MySQL Performance Optimization€¦ · 3 In This Presentation We’l Look at how to approach Performance Optimization Discuss Practical Performance Optimization Tips Look

www.percona.com 6

Even More so

Application Performance Always Matters!

Page 7: Practical MySQL Performance Optimization€¦ · 3 In This Presentation We’l Look at how to approach Performance Optimization Discuss Practical Performance Optimization Tips Look

www.percona.com 7

Take Away

Performance Problems might not be MySQL

Performance Solutions might not

be with MySQL

Page 8: Practical MySQL Performance Optimization€¦ · 3 In This Presentation We’l Look at how to approach Performance Optimization Discuss Practical Performance Optimization Tips Look

www.percona.com 8

Many “Tools”

• MongoDB • Cassandra • Hadoop • Elastic Search • Redis

Use the best

Tool for the job

Page 9: Practical MySQL Performance Optimization€¦ · 3 In This Presentation We’l Look at how to approach Performance Optimization Discuss Practical Performance Optimization Tips Look

www.percona.com 9

Say Performance

Mean Response Time

Page 10: Practical MySQL Performance Optimization€¦ · 3 In This Presentation We’l Look at how to approach Performance Optimization Discuss Practical Performance Optimization Tips Look

www.percona.com 10

Related Issues

Stability

Scalability

Efficiency

Page 11: Practical MySQL Performance Optimization€¦ · 3 In This Presentation We’l Look at how to approach Performance Optimization Discuss Practical Performance Optimization Tips Look

www.percona.com 11

Scalability?

• Load • Data Size • Infrastructure

Scalability with:

Page 12: Practical MySQL Performance Optimization€¦ · 3 In This Presentation We’l Look at how to approach Performance Optimization Discuss Practical Performance Optimization Tips Look

www.percona.com 12

Performance “Sandbags”

Security

Manageability

Compatibility

Compliance

Ease of use by Developers

Page 13: Practical MySQL Performance Optimization€¦ · 3 In This Presentation We’l Look at how to approach Performance Optimization Discuss Practical Performance Optimization Tips Look

www.percona.com 13

“Good Enough”

You can always

improve your system. Know when to stop.

Page 14: Practical MySQL Performance Optimization€¦ · 3 In This Presentation We’l Look at how to approach Performance Optimization Discuss Practical Performance Optimization Tips Look

www.percona.com 14

What MySQL Does

• Selects • Inserts • Deletes • Updates

Processes Queries

Page 15: Practical MySQL Performance Optimization€¦ · 3 In This Presentation We’l Look at how to approach Performance Optimization Discuss Practical Performance Optimization Tips Look

www.percona.com 15

What to focus on?

• Making queries run faster

• Using less resources

• Scaling better

Performance Optimization

focused

Page 16: Practical MySQL Performance Optimization€¦ · 3 In This Presentation We’l Look at how to approach Performance Optimization Discuss Practical Performance Optimization Tips Look

www.percona.com 16

Transaction Optimization

• Find out which queries it runs

• Optimize them

Specific Application Transaction

Page 17: Practical MySQL Performance Optimization€¦ · 3 In This Presentation We’l Look at how to approach Performance Optimization Discuss Practical Performance Optimization Tips Look

www.percona.com 17

General Optimization

• Prioritize them • Optimize them

Look at what

queries Server Runs

Page 18: Practical MySQL Performance Optimization€¦ · 3 In This Presentation We’l Look at how to approach Performance Optimization Discuss Practical Performance Optimization Tips Look

www.percona.com 18

Queries

• Get rid of them? • Can we change them to be doing less work?

Are those the

right queries ?

Page 19: Practical MySQL Performance Optimization€¦ · 3 In This Presentation We’l Look at how to approach Performance Optimization Discuss Practical Performance Optimization Tips Look

www.percona.com 19

Things to Consider

• But avoid focusing only on outliers

Do not look at the average case only

• Consider daily, weekly, monthly cycles

Look at trends over time

• Data size change? Cardinality?

Think about future

performance

Page 20: Practical MySQL Performance Optimization€¦ · 3 In This Presentation We’l Look at how to approach Performance Optimization Discuss Practical Performance Optimization Tips Look

www.percona.com 20

Query Tips

Do less queries – latency and overhead

Read or modify less data

Less data processing on the fly

How much data is traversed vs sent

How much data is sent vs used by app

Page 21: Practical MySQL Performance Optimization€¦ · 3 In This Presentation We’l Look at how to approach Performance Optimization Discuss Practical Performance Optimization Tips Look

www.percona.com 21

Schema

• Minor Schema changes

• Data Architecture

Look at Schema

and Queries together

Page 22: Practical MySQL Performance Optimization€¦ · 3 In This Presentation We’l Look at how to approach Performance Optimization Discuss Practical Performance Optimization Tips Look

www.percona.com 22

Schema Tips

•  http://bit.ly/1rAtamE Learn Indexing

•  Starting with Text book schema is OK ending is likely not

Design Schema for data access

•  Partitioning & Sharding •  Normalization and Denormalization •  Covering Indexes

Technics

Page 23: Practical MySQL Performance Optimization€¦ · 3 In This Presentation We’l Look at how to approach Performance Optimization Discuss Practical Performance Optimization Tips Look

www.percona.com 23

The Following Also Matter

Infrastructure

Operating System and Configuration

MySQL Version

MySQL Configuration

Page 24: Practical MySQL Performance Optimization€¦ · 3 In This Presentation We’l Look at how to approach Performance Optimization Discuss Practical Performance Optimization Tips Look

www.percona.com 24

Optimization Process

Low Hanging Fruit

•  MySQL Configuration

•  OS Settings •  Indexes •  Caching

Medium Level

•  Infrastructure •  OS •  MySQL

Version

Hard Changes

•  Major schema changes

•  Application architecture change

Page 25: Practical MySQL Performance Optimization€¦ · 3 In This Presentation We’l Look at how to approach Performance Optimization Discuss Practical Performance Optimization Tips Look

www.percona.com 25

Infrastructure

Scaling Up or Out

• One MySQL Node

• Many MySQL Nodes

Type

• Public Cloud • Private Cloud • Bare Metal

Page 26: Practical MySQL Performance Optimization€¦ · 3 In This Presentation We’l Look at how to approach Performance Optimization Discuss Practical Performance Optimization Tips Look

www.percona.com 26

Hardware

CPU

Memory

Disk

Network

Page 27: Practical MySQL Performance Optimization€¦ · 3 In This Presentation We’l Look at how to approach Performance Optimization Discuss Practical Performance Optimization Tips Look

www.percona.com 27

CPU

Intel owns the market

2 sockets commonly used

Faster cores or more cores

Turboboost

Page 28: Practical MySQL Performance Optimization€¦ · 3 In This Presentation We’l Look at how to approach Performance Optimization Discuss Practical Performance Optimization Tips Look

www.percona.com 28

Memory

Main purpose – Cache

Think Database size vs Memory

Look together with Storage Optimization

Page 29: Practical MySQL Performance Optimization€¦ · 3 In This Presentation We’l Look at how to approach Performance Optimization Discuss Practical Performance Optimization Tips Look

www.percona.com 29

Invest in Memory or Storage

Page 30: Practical MySQL Performance Optimization€¦ · 3 In This Presentation We’l Look at how to approach Performance Optimization Discuss Practical Performance Optimization Tips Look

www.percona.com 30

Storage

Types

•  Directly Attached

•  SAN •  NAS •  Virtualized

Flash

•  PCI-E •  SATA

“Disks” •  TLC, MLC,

eMLC, SLC

RAID

•  Hardware •  Software •  Filesystem

Page 31: Practical MySQL Performance Optimization€¦ · 3 In This Presentation We’l Look at how to approach Performance Optimization Discuss Practical Performance Optimization Tips Look

www.percona.com 31

Network

Latency

•  Distance •  Number of

“Hops”

Throughput

•  1Gb is a must, trunking recommended

•  10Gb increasingly affordable

Availability

•  Bonding •  Multipath

Page 32: Practical MySQL Performance Optimization€¦ · 3 In This Presentation We’l Look at how to approach Performance Optimization Discuss Practical Performance Optimization Tips Look

www.percona.com 32

OS Choices

Linux

Server grade

Recent

Supporting MySQL well

Page 33: Practical MySQL Performance Optimization€¦ · 3 In This Presentation We’l Look at how to approach Performance Optimization Discuss Practical Performance Optimization Tips Look

www.percona.com 33

OS Tuning

Defaults are good for common workloads

Filesystem: EXT4 or XFS

More Detail http://bit.ly/MySQLonLinux

Page 34: Practical MySQL Performance Optimization€¦ · 3 In This Presentation We’l Look at how to approach Performance Optimization Discuss Practical Performance Optimization Tips Look

www.percona.com 34

MySQL Version

New versions typically improve performance

Scalability, Improved Optimizer, etc.

Expect some regressions

Try Percona Server 5.6

Page 35: Practical MySQL Performance Optimization€¦ · 3 In This Presentation We’l Look at how to approach Performance Optimization Discuss Practical Performance Optimization Tips Look

www.percona.com 35

MySQL Configuration

Do not run with defaults

Do not ever obsess with tuning

More Details: http://bit.ly/1vth5Cu

Page 36: Practical MySQL Performance Optimization€¦ · 3 In This Presentation We’l Look at how to approach Performance Optimization Discuss Practical Performance Optimization Tips Look

www.percona.com 36

MySQL Tuning in 1 slide

•  max_connections •  log_bin •  table_open_cache_size •  table_definitions_cache_size •  open_files_limit •  innodb_buffer_pool_size •  innodb_log_file_size •  Innodb_flush_log_at_trx_commit •  Innodb_flush_method=O_DIRECT

Page 37: Practical MySQL Performance Optimization€¦ · 3 In This Presentation We’l Look at how to approach Performance Optimization Discuss Practical Performance Optimization Tips Look

www.percona.com 37 www.percona.com

Tools and The Process

Page 38: Practical MySQL Performance Optimization€¦ · 3 In This Presentation We’l Look at how to approach Performance Optimization Discuss Practical Performance Optimization Tips Look

www.percona.com 38

Process

• Do not bring bad queries and schema in production

Developers Part

• Catch bad queries • Validate changes in hardware,

configuration, versions

Operations Process

Page 39: Practical MySQL Performance Optimization€¦ · 3 In This Presentation We’l Look at how to approach Performance Optimization Discuss Practical Performance Optimization Tips Look

www.percona.com 39

Queries will be impacted

Hardware Changes

Configuration

MySQL Version Changes

Impact of Data Growth

Changes to the Query Mix

Optimizer Plan Changes

Page 40: Practical MySQL Performance Optimization€¦ · 3 In This Presentation We’l Look at how to approach Performance Optimization Discuss Practical Performance Optimization Tips Look

www.percona.com 40

Tools

PT-Query-Digest from Percona Toolkit

MySQL Enterprise Monitor

MonYog

VividCortex

Percona Cloud Tools

Page 41: Practical MySQL Performance Optimization€¦ · 3 In This Presentation We’l Look at how to approach Performance Optimization Discuss Practical Performance Optimization Tips Look

www.percona.com 41

Percona Cloud Tools

Hosted Performance Management and Monitoring Solution from Percona

Everything I show is available in a FREE version

Register at http://cloud.percona.com

Page 42: Practical MySQL Performance Optimization€¦ · 3 In This Presentation We’l Look at how to approach Performance Optimization Discuss Practical Performance Optimization Tips Look

www.percona.com 42

Data

Queries

Metrics

Configuration

Page 43: Practical MySQL Performance Optimization€¦ · 3 In This Presentation We’l Look at how to approach Performance Optimization Discuss Practical Performance Optimization Tips Look

www.percona.com 43

Design

Capture metrics with 1sec resolution

Go beyond averages

Decouple graphs from metrics

Real-time interaction

Page 44: Practical MySQL Performance Optimization€¦ · 3 In This Presentation We’l Look at how to approach Performance Optimization Discuss Practical Performance Optimization Tips Look

www.percona.com 44

Query Profile

Page 45: Practical MySQL Performance Optimization€¦ · 3 In This Presentation We’l Look at how to approach Performance Optimization Discuss Practical Performance Optimization Tips Look

www.percona.com 45

Specifics

•  Pick Time Range •  Pick Queries you’re interested in

Page 46: Practical MySQL Performance Optimization€¦ · 3 In This Presentation We’l Look at how to approach Performance Optimization Discuss Practical Performance Optimization Tips Look

www.percona.com 46

Server Profile

Page 47: Practical MySQL Performance Optimization€¦ · 3 In This Presentation We’l Look at how to approach Performance Optimization Discuss Practical Performance Optimization Tips Look

www.percona.com 47

Drill Down

Page 48: Practical MySQL Performance Optimization€¦ · 3 In This Presentation We’l Look at how to approach Performance Optimization Discuss Practical Performance Optimization Tips Look

www.percona.com 48

Response Time Stability

Page 49: Practical MySQL Performance Optimization€¦ · 3 In This Presentation We’l Look at how to approach Performance Optimization Discuss Practical Performance Optimization Tips Look

www.percona.com 49

Query Information

Page 50: Practical MySQL Performance Optimization€¦ · 3 In This Presentation We’l Look at how to approach Performance Optimization Discuss Practical Performance Optimization Tips Look

www.percona.com 50

See Change

Page 51: Practical MySQL Performance Optimization€¦ · 3 In This Presentation We’l Look at how to approach Performance Optimization Discuss Practical Performance Optimization Tips Look

www.percona.com 51

Tag, Review, Comment

Page 52: Practical MySQL Performance Optimization€¦ · 3 In This Presentation We’l Look at how to approach Performance Optimization Discuss Practical Performance Optimization Tips Look

www.percona.com 52

Query Execution Details

Page 53: Practical MySQL Performance Optimization€¦ · 3 In This Presentation We’l Look at how to approach Performance Optimization Discuss Practical Performance Optimization Tips Look

www.percona.com 53

See live EXPLAIN

Page 54: Practical MySQL Performance Optimization€¦ · 3 In This Presentation We’l Look at how to approach Performance Optimization Discuss Practical Performance Optimization Tips Look

www.percona.com 54

System Information

Page 55: Practical MySQL Performance Optimization€¦ · 3 In This Presentation We’l Look at how to approach Performance Optimization Discuss Practical Performance Optimization Tips Look

www.percona.com 55

Watch Metrics

Page 56: Practical MySQL Performance Optimization€¦ · 3 In This Presentation We’l Look at how to approach Performance Optimization Discuss Practical Performance Optimization Tips Look

www.percona.com 56

Zoom

Page 57: Practical MySQL Performance Optimization€¦ · 3 In This Presentation We’l Look at how to approach Performance Optimization Discuss Practical Performance Optimization Tips Look

www.percona.com 57

Look at Distribution

Page 58: Practical MySQL Performance Optimization€¦ · 3 In This Presentation We’l Look at how to approach Performance Optimization Discuss Practical Performance Optimization Tips Look

www.percona.com 58

To Sum it Up

It is Application Performance what Matters!

Use Right Tools for Right Job

See what Queries MySQL is Running

Reduce Number of Queries

Reduce Data They Return

See how they can do less work

Do that work more efficiently

Page 59: Practical MySQL Performance Optimization€¦ · 3 In This Presentation We’l Look at how to approach Performance Optimization Discuss Practical Performance Optimization Tips Look

www.percona.com 59

Percona

Support

Managed Services

Consulting

Software

Page 60: Practical MySQL Performance Optimization€¦ · 3 In This Presentation We’l Look at how to approach Performance Optimization Discuss Practical Performance Optimization Tips Look

www.percona.com 60 www.percona.com

Peter Zaitsev [email protected]

Thank You!