+ All Categories
Home > Documents > YOUR machine and MY database · 2018-10-22 · RAM @MartinKlierDBA YOUR ... Session 2 Same or diff....

YOUR machine and MY database · 2018-10-22 · RAM @MartinKlierDBA YOUR ... Session 2 Same or diff....

Date post: 24-May-2020
Category:
Upload: others
View: 2 times
Download: 0 times
Share this document with a friend
55
Transcript
Page 1: YOUR machine and MY database · 2018-10-22 · RAM @MartinKlierDBA YOUR ... Session 2 Same or diff. Buffer (Chain), same latch :(Spin Locks the chain and looks for a buffer CBC 51
Page 2: YOUR machine and MY database · 2018-10-22 · RAM @MartinKlierDBA YOUR ... Session 2 Same or diff. Buffer (Chain), same latch :(Spin Locks the chain and looks for a buffer CBC 51

YOUR machine and MY database - a performing relationship!?

Martin Klier

Performing Databases GmbHMitterteich

Page 3: YOUR machine and MY database · 2018-10-22 · RAM @MartinKlierDBA YOUR ... Session 2 Same or diff. Buffer (Chain), same latch :(Spin Locks the chain and looks for a buffer CBC 51

● Martin Klier● Lösungsarchitekt und Datenbankspezialist

● Fachliche Schwerpunkte:– Performanceoptimierung– hochverfügbare Systeme– Cluster und Replikation

● Linux seit 1997● Oracle Database seit 2003

Referent

@MartinKlierDBA YOUR machine and MY database - a performing relationship?! 3/55

Page 4: YOUR machine and MY database · 2018-10-22 · RAM @MartinKlierDBA YOUR ... Session 2 Same or diff. Buffer (Chain), same latch :(Spin Locks the chain and looks for a buffer CBC 51

Referent

● Vorträge

● Kontakt: [email protected]

● Weblog: http://www.usn-it.de

Regionalgruppen

@MartinKlierDBA YOUR machine and MY database - a performing relationship?! 4/55

Page 5: YOUR machine and MY database · 2018-10-22 · RAM @MartinKlierDBA YOUR ... Session 2 Same or diff. Buffer (Chain), same latch :(Spin Locks the chain and looks for a buffer CBC 51

Performing Databases● Spezialisten für Datenbanktechnik

– Konzeptberatung und Vergabekompetenz– Architektur- und Systemplanung– Lizenzierung– Realisierung und Troubleshooting

● Web: http://www.performing-databases.com

● Mail: [email protected]

● Twitter: @PerformingDB

@MartinKlierDBA YOUR machine and MY database - a performing relationship?! 5/55

Page 6: YOUR machine and MY database · 2018-10-22 · RAM @MartinKlierDBA YOUR ... Session 2 Same or diff. Buffer (Chain), same latch :(Spin Locks the chain and looks for a buffer CBC 51

• Introduction

• NUMA + Huge Pages

• Disk IO

• Concurrency

• Engineers to work together

Agenda

@MartinKlierDBA YOUR machine and MY database - a performing relationship?! 6/55

Page 7: YOUR machine and MY database · 2018-10-22 · RAM @MartinKlierDBA YOUR ... Session 2 Same or diff. Buffer (Chain), same latch :(Spin Locks the chain and looks for a buffer CBC 51

Server / CPU

@MartinKlierDBA YOUR machine and MY database - a performing relationship?! 7/55

Page 8: YOUR machine and MY database · 2018-10-22 · RAM @MartinKlierDBA YOUR ... Session 2 Same or diff. Buffer (Chain), same latch :(Spin Locks the chain and looks for a buffer CBC 51

NUMA

Core(s)+SharedCache, LLC

Core(s)+SharedCache, LLC

QPI-C

Core(s)+SharedCache, LLC

Core(s)+SharedCache, LLC

PCIePCIe

IMC IMCQPI-C

IMCQPI-CQPI-CIMC

NonUnifedMemoryAccess

@MartinKlierDBA YOUR machine and MY database - a performing relationship?! 8/55

Page 9: YOUR machine and MY database · 2018-10-22 · RAM @MartinKlierDBA YOUR ... Session 2 Same or diff. Buffer (Chain), same latch :(Spin Locks the chain and looks for a buffer CBC 51

_enable_NUMA_support = TRUE

MOS Doc ID 864633.1

• Multiple Buffer Caches

• Striped pools

=> cross context :((

=> pool access :(

NUMA

@MartinKlierDBA YOUR machine and MY database - a performing relationship?! 9/55

Page 10: YOUR machine and MY database · 2018-10-22 · RAM @MartinKlierDBA YOUR ... Session 2 Same or diff. Buffer (Chain), same latch :(Spin Locks the chain and looks for a buffer CBC 51

26 GB

NUMA

@MartinKlierDBA YOUR machine and MY database - a performing relationship?! 10/55

Page 11: YOUR machine and MY database · 2018-10-22 · RAM @MartinKlierDBA YOUR ... Session 2 Same or diff. Buffer (Chain), same latch :(Spin Locks the chain and looks for a buffer CBC 51

13GB+13GB=26 GB

One buffer cache for each node

NUMA

@MartinKlierDBA YOUR machine and MY database - a performing relationship?! 11/55

Page 12: YOUR machine and MY database · 2018-10-22 · RAM @MartinKlierDBA YOUR ... Session 2 Same or diff. Buffer (Chain), same latch :(Spin Locks the chain and looks for a buffer CBC 51

• Partitioned access

• Can be up to 40% faster

• But....

NUMA

@MartinKlierDBA YOUR machine and MY database - a performing relationship?! 12/55

Page 13: YOUR machine and MY database · 2018-10-22 · RAM @MartinKlierDBA YOUR ... Session 2 Same or diff. Buffer (Chain), same latch :(Spin Locks the chain and looks for a buffer CBC 51

Non-NUMA with NUMA

With my workload and only one listener:Saved <1 page alloc miss per second ?

NUMA

@MartinKlierDBA YOUR machine and MY database - a performing relationship?! 13/55

Page 14: YOUR machine and MY database · 2018-10-22 · RAM @MartinKlierDBA YOUR ... Session 2 Same or diff. Buffer (Chain), same latch :(Spin Locks the chain and looks for a buffer CBC 51

26 GBFits into RAM of one node.OS NUMA optimization at work.

So WHY?

NUMA

@MartinKlierDBA YOUR machine and MY database - a performing relationship?! 14/55

Page 15: YOUR machine and MY database · 2018-10-22 · RAM @MartinKlierDBA YOUR ... Session 2 Same or diff. Buffer (Chain), same latch :(Spin Locks the chain and looks for a buffer CBC 51

System Admin DBA Developer

Relevance-and-care chart

NUMA

@MartinKlierDBA YOUR machine and MY database - a performing relationship?! 15/55

Page 16: YOUR machine and MY database · 2018-10-22 · RAM @MartinKlierDBA YOUR ... Session 2 Same or diff. Buffer (Chain), same latch :(Spin Locks the chain and looks for a buffer CBC 51

Suggestions

• Useful in big environments only (think: DB consolidation)

• Make friends with the system admin,have a joint opinion

• Test thoroughly and quantify use vs. effort (think: bugs)

NUMA

@MartinKlierDBA YOUR machine and MY database - a performing relationship?! 16/55

Page 17: YOUR machine and MY database · 2018-10-22 · RAM @MartinKlierDBA YOUR ... Session 2 Same or diff. Buffer (Chain), same latch :(Spin Locks the chain and looks for a buffer CBC 51

Server / RAM

@MartinKlierDBA YOUR machine and MY database - a performing relationship?! 17/55

Page 18: YOUR machine and MY database · 2018-10-22 · RAM @MartinKlierDBA YOUR ... Session 2 Same or diff. Buffer (Chain), same latch :(Spin Locks the chain and looks for a buffer CBC 51

Shared Memory Segment

SmallOS

Pages

PMON

etc.

Server

OS Kernel managedAccess(permission check)

NewProcess

➔Grant permission➔Integrate in serializationstructures

Per page

RAM

@MartinKlierDBA YOUR machine and MY database - a performing relationship?! 18/55

Page 19: YOUR machine and MY database · 2018-10-22 · RAM @MartinKlierDBA YOUR ... Session 2 Same or diff. Buffer (Chain), same latch :(Spin Locks the chain and looks for a buffer CBC 51

Problems

• Memory Fragmentation

• Wasting CPU with page alloc

• OS_THREAD_STARTUP waits

RAM

@MartinKlierDBA YOUR machine and MY database - a performing relationship?! 19/55

Page 20: YOUR machine and MY database · 2018-10-22 · RAM @MartinKlierDBA YOUR ... Session 2 Same or diff. Buffer (Chain), same latch :(Spin Locks the chain and looks for a buffer CBC 51

Shared Memory Segment

OSPage

NewProcess

Large / HugeOS

Pages

FASTstartup

PMON

Server

FASTaccess

Huge Pages

@MartinKlierDBA YOUR machine and MY database - a performing relationship?! 20/55

Page 21: YOUR machine and MY database · 2018-10-22 · RAM @MartinKlierDBA YOUR ... Session 2 Same or diff. Buffer (Chain), same latch :(Spin Locks the chain and looks for a buffer CBC 51

Alert Log

(17408-3164)*2048kB=28GB

Huge Pages

@MartinKlierDBA YOUR machine and MY database - a performing relationship?! 21/55

Page 22: YOUR machine and MY database · 2018-10-22 · RAM @MartinKlierDBA YOUR ... Session 2 Same or diff. Buffer (Chain), same latch :(Spin Locks the chain and looks for a buffer CBC 51

System Admin DBA Developer

Relevance-and-care chart

Huge Pages

@MartinKlierDBA YOUR machine and MY database - a performing relationship?! 22/55

Page 23: YOUR machine and MY database · 2018-10-22 · RAM @MartinKlierDBA YOUR ... Session 2 Same or diff. Buffer (Chain), same latch :(Spin Locks the chain and looks for a buffer CBC 51

Suggestions Large/Huge Pages

• Useful with SGA >=16GB

• Use largest available & sane page size

• Talk your sysadmin into DOing IT

• Combine with PRE_PAGE_SGA=TRUE

Huge Pages

@MartinKlierDBA YOUR machine and MY database - a performing relationship?! 23/55

Page 24: YOUR machine and MY database · 2018-10-22 · RAM @MartinKlierDBA YOUR ... Session 2 Same or diff. Buffer (Chain), same latch :(Spin Locks the chain and looks for a buffer CBC 51

Storage / SSD

@MartinKlierDBA YOUR machine and MY database - a performing relationship?! 24/55

Page 25: YOUR machine and MY database · 2018-10-22 · RAM @MartinKlierDBA YOUR ... Session 2 Same or diff. Buffer (Chain), same latch :(Spin Locks the chain and looks for a buffer CBC 51

Words

Bits “Cell”

Block

SSD

@MartinKlierDBA YOUR machine and MY database - a performing relationship?! 25/55

Page 26: YOUR machine and MY database · 2018-10-22 · RAM @MartinKlierDBA YOUR ... Session 2 Same or diff. Buffer (Chain), same latch :(Spin Locks the chain and looks for a buffer CBC 51

SSD

@MartinKlierDBA YOUR machine and MY database - a performing relationship?! 26/55

Page 27: YOUR machine and MY database · 2018-10-22 · RAM @MartinKlierDBA YOUR ... Session 2 Same or diff. Buffer (Chain), same latch :(Spin Locks the chain and looks for a buffer CBC 51

16kB – 512kB pro Block

1.erase

SSD

@MartinKlierDBA YOUR machine and MY database - a performing relationship?! 27/55

Page 28: YOUR machine and MY database · 2018-10-22 · RAM @MartinKlierDBA YOUR ... Session 2 Same or diff. Buffer (Chain), same latch :(Spin Locks the chain and looks for a buffer CBC 51

16kB – 512kB pro Block

2.write

SSD

@MartinKlierDBA YOUR machine and MY database - a performing relationship?! 28/55

Page 29: YOUR machine and MY database · 2018-10-22 · RAM @MartinKlierDBA YOUR ... Session 2 Same or diff. Buffer (Chain), same latch :(Spin Locks the chain and looks for a buffer CBC 51

Types and Figures from 2009 - But the terrors are still intact. :)

120:60= *2

85:60= *1.4

SSD

@MartinKlierDBA YOUR machine and MY database - a performing relationship?! 29/55

Page 30: YOUR machine and MY database · 2018-10-22 · RAM @MartinKlierDBA YOUR ... Session 2 Same or diff. Buffer (Chain), same latch :(Spin Locks the chain and looks for a buffer CBC 51

8171 IOPSlike 60 HDDs

8k/16k blocks

80% write20% read

Samsung SSD 840 PRO

8k/16k blocks8k/16k blocks

SSD

@MartinKlierDBA YOUR machine and MY database - a performing relationship?! 30/55

Page 31: YOUR machine and MY database · 2018-10-22 · RAM @MartinKlierDBA YOUR ... Session 2 Same or diff. Buffer (Chain), same latch :(Spin Locks the chain and looks for a buffer CBC 51

System Admin DBA Developer

Relevance-and-care chart

SSD

@MartinKlierDBA YOUR machine and MY database - a performing relationship?! 31/55

Page 32: YOUR machine and MY database · 2018-10-22 · RAM @MartinKlierDBA YOUR ... Session 2 Same or diff. Buffer (Chain), same latch :(Spin Locks the chain and looks for a buffer CBC 51

Suggestions

• Know your IO load profile (AWR, nmon)

• Use enterprise-level devices w/ Single Level Cell (SLC)

• SSDs require different lifecycle handlingin doubt, consider an array of HDDs of same IO power

SSD

@MartinKlierDBA YOUR machine and MY database - a performing relationship?! 32/55

Page 33: YOUR machine and MY database · 2018-10-22 · RAM @MartinKlierDBA YOUR ... Session 2 Same or diff. Buffer (Chain), same latch :(Spin Locks the chain and looks for a buffer CBC 51

Concurrency

means collisions and serialization

@MartinKlierDBA YOUR machine and MY database - a performing relationship?! 33/55

Page 34: YOUR machine and MY database · 2018-10-22 · RAM @MartinKlierDBA YOUR ... Session 2 Same or diff. Buffer (Chain), same latch :(Spin Locks the chain and looks for a buffer CBC 51

Occurrence

• Data Access (Row Lock, Block Header)

• Shared memory organization (Buffer / Library Cache etc.)

• CPU queueing

• Disk / Network IO ..........

Concurrency

@MartinKlierDBA YOUR machine and MY database - a performing relationship?! 34/55

Page 35: YOUR machine and MY database · 2018-10-22 · RAM @MartinKlierDBA YOUR ... Session 2 Same or diff. Buffer (Chain), same latch :(Spin Locks the chain and looks for a buffer CBC 51

5

5

6

?

7

?

X

State B

Protectedor limitedresource Delayed

State A

Concurrency

@MartinKlierDBA YOUR machine and MY database - a performing relationship?! 35/55

Page 36: YOUR machine and MY database · 2018-10-22 · RAM @MartinKlierDBA YOUR ... Session 2 Same or diff. Buffer (Chain), same latch :(Spin Locks the chain and looks for a buffer CBC 51

Row Lock

@MartinKlierDBA YOUR machine and MY database - a performing relationship?! 36/55

Page 37: YOUR machine and MY database · 2018-10-22 · RAM @MartinKlierDBA YOUR ... Session 2 Same or diff. Buffer (Chain), same latch :(Spin Locks the chain and looks for a buffer CBC 51

Header

Row Space

Free Space

===========================================================================

=============================================

ITLentry

Row

Block / Buffer

@MartinKlierDBA YOUR machine and MY database - a performing relationship?! 37/55

Page 38: YOUR machine and MY database · 2018-10-22 · RAM @MartinKlierDBA YOUR ... Session 2 Same or diff. Buffer (Chain), same latch :(Spin Locks the chain and looks for a buffer CBC 51

===========================================================================

=============================================

Session 1

Session 2

IncompatibleLock

Attempt

Spin

ITLentry

Row

Lock and Access

enq: TX - row lock contention

Row Lock

@MartinKlierDBA YOUR machine and MY database - a performing relationship?! 38/55

Page 39: YOUR machine and MY database · 2018-10-22 · RAM @MartinKlierDBA YOUR ... Session 2 Same or diff. Buffer (Chain), same latch :(Spin Locks the chain and looks for a buffer CBC 51

Spinning means

• Active checking of a value in memory

• “Wasting” CPU for non-productive work

• Oracle Spin Count limits and Wait Events are a generosityto limit, see and measure the impact

Concurrency

@MartinKlierDBA YOUR machine and MY database - a performing relationship?! 39/55

Page 40: YOUR machine and MY database · 2018-10-22 · RAM @MartinKlierDBA YOUR ... Session 2 Same or diff. Buffer (Chain), same latch :(Spin Locks the chain and looks for a buffer CBC 51

===========================================================================

=============================================

Resizing

● Limited Space● Concurrent Buffer modif.

spin!

one does it

other one(s)

buffer busy waitenq: TX - allocate ITL entry

ITL Stress

@MartinKlierDBA YOUR machine and MY database - a performing relationship?! 40/55

Page 41: YOUR machine and MY database · 2018-10-22 · RAM @MartinKlierDBA YOUR ... Session 2 Same or diff. Buffer (Chain), same latch :(Spin Locks the chain and looks for a buffer CBC 51

Library CacheObject

Session 1

Session 2

Sleep = WaitS2 spinning on M.

M

S1 holding MutexSame for Latches, but a bit uglier.

Mutex Contention cursor: mutex Scursor: mutex X...

Mutex

@MartinKlierDBA YOUR machine and MY database - a performing relationship?! 41/55

Page 42: YOUR machine and MY database · 2018-10-22 · RAM @MartinKlierDBA YOUR ... Session 2 Same or diff. Buffer (Chain), same latch :(Spin Locks the chain and looks for a buffer CBC 51

CBC 4F BH 1 BH 77

CBC 51 BH 99 BH 32

Chains

Buffer Headers(references in Shared Pool)

Latches

Cache Buffer Chains: Is this block in the BC?

CBC

@MartinKlierDBA YOUR machine and MY database - a performing relationship?! 42/55

Page 43: YOUR machine and MY database · 2018-10-22 · RAM @MartinKlierDBA YOUR ... Session 2 Same or diff. Buffer (Chain), same latch :(Spin Locks the chain and looks for a buffer CBC 51

CBC 4F BH 1 BH 77

Session 1

Session 2 Same or diff. Buffer (Chain), same latch :(

Spin

Locks the chain and looks for a buffer

CBC 51 BH 99 BH 32

latch: cache buffer chain

CBC

@MartinKlierDBA YOUR machine and MY database - a performing relationship?! 43/55

Page 44: YOUR machine and MY database · 2018-10-22 · RAM @MartinKlierDBA YOUR ... Session 2 Same or diff. Buffer (Chain), same latch :(Spin Locks the chain and looks for a buffer CBC 51

System Admin DBA Developer

Relevance-and-care chart

Concurrency

@MartinKlierDBA YOUR machine and MY database - a performing relationship?! 44/55

Page 45: YOUR machine and MY database · 2018-10-22 · RAM @MartinKlierDBA YOUR ... Session 2 Same or diff. Buffer (Chain), same latch :(Spin Locks the chain and looks for a buffer CBC 51

Suggestions

• Check workload (think: SQL efficiency)=> Reduce logical reads/writes

• Be ready for decent diagnosis (think in Wait Events)

Concurrency

@MartinKlierDBA YOUR machine and MY database - a performing relationship?! 45/55

Page 46: YOUR machine and MY database · 2018-10-22 · RAM @MartinKlierDBA YOUR ... Session 2 Same or diff. Buffer (Chain), same latch :(Spin Locks the chain and looks for a buffer CBC 51

Collaborate

It's all about humans working together

@MartinKlierDBA YOUR machine and MY database - a performing relationship?! 46/55

Page 47: YOUR machine and MY database · 2018-10-22 · RAM @MartinKlierDBA YOUR ... Session 2 Same or diff. Buffer (Chain), same latch :(Spin Locks the chain and looks for a buffer CBC 51

ApplicationNetwork

Database

ServerOperating System

SANStorage

Layers

@MartinKlierDBA YOUR machine and MY database - a performing relationship?! 47/55

Page 48: YOUR machine and MY database · 2018-10-22 · RAM @MartinKlierDBA YOUR ... Session 2 Same or diff. Buffer (Chain), same latch :(Spin Locks the chain and looks for a buffer CBC 51

Engineers to work together

People

@MartinKlierDBA YOUR machine and MY database - a performing relationship?! 48/55

Page 49: YOUR machine and MY database · 2018-10-22 · RAM @MartinKlierDBA YOUR ... Session 2 Same or diff. Buffer (Chain), same latch :(Spin Locks the chain and looks for a buffer CBC 51

System Admin DBA Developer

Relevance-and-care chart

“All” is slow!

@MartinKlierDBA YOUR machine and MY database - a performing relationship?! 49/55

Page 50: YOUR machine and MY database · 2018-10-22 · RAM @MartinKlierDBA YOUR ... Session 2 Same or diff. Buffer (Chain), same latch :(Spin Locks the chain and looks for a buffer CBC 51

System Admin DBA Developer

Relevance-and-care chart

It simply works ...

@MartinKlierDBA YOUR machine and MY database - a performing relationship?! 50/55

Page 51: YOUR machine and MY database · 2018-10-22 · RAM @MartinKlierDBA YOUR ... Session 2 Same or diff. Buffer (Chain), same latch :(Spin Locks the chain and looks for a buffer CBC 51

Make sure you have enough parallel beer!

Teamplay!

@MartinKlierDBA YOUR machine and MY database - a performing relationship?! 51/55

Page 52: YOUR machine and MY database · 2018-10-22 · RAM @MartinKlierDBA YOUR ... Session 2 Same or diff. Buffer (Chain), same latch :(Spin Locks the chain and looks for a buffer CBC 51

Thank you very muchfor your attention!

@MartinKlierDBA YOUR machine and MY database - a performing relationship?! 52/55

Martin Klier

Performing Databases GmbHMitterteich

Page 53: YOUR machine and MY database · 2018-10-22 · RAM @MartinKlierDBA YOUR ... Session 2 Same or diff. Buffer (Chain), same latch :(Spin Locks the chain and looks for a buffer CBC 51

More resources on this topic

• Kevin Closson, on NUMA and Huge Pageshttps://kevinclosson.wordpress.com/2010/03/18/you-buy-a-numa-system-oracle-says-disable-numa-what-gives-part-i/http://kevinclosson.wordpress.com/2010/09/28/configuring-linux-hugepages-for-oracle-database-is-just-too-difficult-part-i/

• Craig Shallahamer, on Cache Buffer Chain visualizationhttp://shallahamer-orapub.blogspot.de/2010/09/buffer-cache-visualization-and-tool.html

• Arup Nanda, on ITL / Lockshttp://arup.blogspot.de/2011/01/more-on-interested-transaction-lists.html

• Andrey Nikolaev on Mutexes“Exploring mutexes, the Oracle RDBMS retrial spinlocks”

• Ronan Bourlier & Loïc Fura, IBM“Oracle DB and AIX Best Practices for Performance & Tuning”

• My Oracle SupportDoc ID 864633.1 “Enable Oracle NUMA support with Oracle Server Version 11gR2”Doc ID 1392497.1 “USE_LARGE_PAGES To Enable HugePages”Doc ID 361468.1 “HugePages on Oracle Linux 64-bit”

Read on...

@MartinKlierDBA YOUR machine and MY database - a performing relationship?! 53/55

Page 54: YOUR machine and MY database · 2018-10-22 · RAM @MartinKlierDBA YOUR ... Session 2 Same or diff. Buffer (Chain), same latch :(Spin Locks the chain and looks for a buffer CBC 51

Thank you

Many people have helped with suggestions, critics or taking daily work off me during preparation and travel phase.

Guys, you are top!

@MartinKlierDBA YOUR machine and MY database - a performing relationship?! 54/55

Page 55: YOUR machine and MY database · 2018-10-22 · RAM @MartinKlierDBA YOUR ... Session 2 Same or diff. Buffer (Chain), same latch :(Spin Locks the chain and looks for a buffer CBC 51

Recommended