+ All Categories
Home > Documents > 1 Abstract Modern computing demands large memory, many CPUs and elaborate storage. How do you meet...

1 Abstract Modern computing demands large memory, many CPUs and elaborate storage. How do you meet...

Date post: 21-Jan-2016
Category:
Upload: madeleine-lawson
View: 222 times
Download: 0 times
Share this document with a friend
Popular Tags:
64
1 Abstract Modern computing demands large memory, many CPUs and elaborate storage. How do you meet these demands for your OpenEdge environment? In this talk we give you advice, tips, useless information, and pointers on the technologies you can use to meet your requirements. Among other things, we will discuss NUMA (Non-Uniform Memory Access), RAID, SSD, and some of the more advanced OpenEdge RDBMS tuning techniques. What's in it for you? We'll address that question in a discussion of benefits.
Transcript
Page 1: 1 Abstract Modern computing demands large memory, many CPUs and elaborate storage. How do you meet these demands for your OpenEdge environment? In this.

1

Abstract

Modern computing demands large memory, many CPUs and elaborate storage.

How do you meet these demands for your OpenEdge environment? In this talk we give you advice, tips, useless information, and pointers on the technologies you can use to meet your requirements. Among other things, we will discuss NUMA (Non-Uniform Memory Access), RAID, SSD, and some of the more advanced OpenEdge RDBMS tuning techniques.

What's in it for you? We'll address that question in a discussion of benefits.

Page 2: 1 Abstract Modern computing demands large memory, many CPUs and elaborate storage. How do you meet these demands for your OpenEdge environment? In this.

Performance Tuning the OpenEdge Database In The Modern World

Gus Björklund, Lackey

Mike Furgal, Boss

EMEA PUG Challenge 2015,Copenhagen, Denmark4 – 6 November, 2015

Page 3: 1 Abstract Modern computing demands large memory, many CPUs and elaborate storage. How do you meet these demands for your OpenEdge environment? In this.

3

We are

Page 4: 1 Abstract Modern computing demands large memory, many CPUs and elaborate storage. How do you meet these demands for your OpenEdge environment? In this.

4

Performance tuning is not

just about software configuration

and turning knobs.

Page 5: 1 Abstract Modern computing demands large memory, many CPUs and elaborate storage. How do you meet these demands for your OpenEdge environment? In this.

5

Situation:

Your server is 5 years old.

Vendor support fees rise.

Parts prices rise.

Parts are harder to find.

With what do you replace old server ???

Page 6: 1 Abstract Modern computing demands large memory, many CPUs and elaborate storage. How do you meet these demands for your OpenEdge environment? In this.

6

Good news !

Hardware is cheap.

Page 7: 1 Abstract Modern computing demands large memory, many CPUs and elaborate storage. How do you meet these demands for your OpenEdge environment? In this.

7

Your new server will have:

Processors

Memory

Storage

Software

Page 8: 1 Abstract Modern computing demands large memory, many CPUs and elaborate storage. How do you meet these demands for your OpenEdge environment? In this.

8

Numbers you should know(from Jeff Dean @ google)

thing time

Read or write L1 cache memory 0.5 ns

Branch mispredict 5 ns

Mutex lock/unlock 100 ns

Read 1 byte from main memory 100 ns

Send 2K bytes over 1 Gbps network 20,000 ns

Read 1 MB sequentially from memory 250,000 ns

Round trip packet within same datacenter 500,000 ns

Disk seek 10,000,000 ns

Read 1 MB sequentially from network 10,000,000 ns

Read 1 MB sequentially from disk 30,000,000 ns

Send packet CA -> Netherlands -> CA 150,000,000 ns

1 second 1,000,000,000 ns

Page 9: 1 Abstract Modern computing demands large memory, many CPUs and elaborate storage. How do you meet these demands for your OpenEdge environment? In this.

9

Processors

Page 10: 1 Abstract Modern computing demands large memory, many CPUs and elaborate storage. How do you meet these demands for your OpenEdge environment? In this.

10

Modern processors are very fast.

Single cpu machines hardly exist anymore.

You can have way more cpu power thanyou can ever use

Page 11: 1 Abstract Modern computing demands large memory, many CPUs and elaborate storage. How do you meet these demands for your OpenEdge environment? In this.

11

cpu

me

mor

y b

us

address contents

0x100 gus.....

0x108 bob.....

0x110 peter...

0x118 clyde...

0x120 mary....

0x128 amnon...

0x130 gabi....

0x138 may.....

0x140 bill....

0x148 rich....

0x150 evan....

0x158 robin...

0x160 shelley.

slowmain

memory

address contents

0x100 gus.....

0x138 may.....

fast cache

Simple single processor architectureone level high speed cache memory

Page 12: 1 Abstract Modern computing demands large memory, many CPUs and elaborate storage. How do you meet these demands for your OpenEdge environment? In this.

12

cpu

me

mor

y b

us

address contents

0x100 gus.....

0x108 bob.....

0x110 peter...

0x118 clyde...

0x120 mary....

0x128 amnon...

0x130 gabi....

0x138 may.....

0x140 bill....

0x148 rich....

0x150 evan....

0x158 robin...

0x160 shelley.

slowmain

memory

address contents

0x100 alan....

0x138 may.....

fast cache

Simple single processor architectureone level high speed cache memory

Page 13: 1 Abstract Modern computing demands large memory, many CPUs and elaborate storage. How do you meet these demands for your OpenEdge environment? In this.

13

cpu

me

mor

y b

us

address contents

0x100 alan....

0x108 bob.....

0x110 peter...

0x118 clyde...

0x120 mary....

0x128 amnon...

0x130 gabi....

0x138 may.....

0x140 bill....

0x148 rich....

0x150 evan....

0x158 robin...

0x160 shelley.

slowmain

memory

address contents

0x150 evan....

0x138 may.....

fast cache

Simple single processor architectureone level high speed cache memory

Page 14: 1 Abstract Modern computing demands large memory, many CPUs and elaborate storage. How do you meet these demands for your OpenEdge environment? In this.

14

cpu

Multiprocessor caches

me

mor

y b

us

address contents

0x100 gus.....

0x108 bob.....

0x110 peter...

0x118 clyde...

0x120 mary....

0x128 amnon...

0x130 gabi....

0x138 may.....

0x140 bill....

0x148 rich....

0x150 evan....

0x158 robin...

0x160 shelley.

slowmain

memory

address contents

0x100 gus.....

0x138 may.....

fast cache

cpu0x100 gus.....

0x138 may.....

cpu0x100 gus.....

0x138 may.....

cpu0x100 gus.....

0x138 may.....

Page 15: 1 Abstract Modern computing demands large memory, many CPUs and elaborate storage. How do you meet these demands for your OpenEdge environment? In this.

15

cpu

Multiprocessor caches

me

mor

y b

us

address contents

0x100 gus.....

0x108 bob.....

0x110 peter...

0x118 clyde...

0x120 mary....

0x128 amnon...

0x130 gabi....

0x138 may.....

0x140 bill....

0x148 rich....

0x150 evan....

0x158 robin...

0x160 shelley.

slowmain

memory

address contents

0x100 gus.....

0x138 may.....

fast cache

cpu0x100 alan....

0x138 may.....

cpu0x150 evan....

0x138 may.....

cpu0x150 evan.....

0x138 may.....

who has the right value foraddress 0x100?

Page 16: 1 Abstract Modern computing demands large memory, many CPUs and elaborate storage. How do you meet these demands for your OpenEdge environment? In this.

16

A techniques to avoid Cache Coherency issues

Lessen the number of processes connecteddirectly to shared memory.

Page 17: 1 Abstract Modern computing demands large memory, many CPUs and elaborate storage. How do you meet these demands for your OpenEdge environment? In this.

17

Main Memory

Page 18: 1 Abstract Modern computing demands large memory, many CPUs and elaborate storage. How do you meet these demands for your OpenEdge environment? In this.

18

Memory prices have dropped significantly over the past years. For example in the year 2000, 64 MB of memory cost $100. In 2010 for $100 you could get 4 GB of memory. Today (2015) that same $100 gets you about 16 GB of memory.

9.0A 10.0A 9.1E04 10.2B 11.3.2

1998 2000 2002 2004 2006 2008 2010 2012 2014 20160

5000

10000

15000

20000

25000

How many MB does $100 USD Buy

11.5.0

Page 19: 1 Abstract Modern computing demands large memory, many CPUs and elaborate storage. How do you meet these demands for your OpenEdge environment? In this.

19

Main Memory

The least expensive wayto enhance performance.

Buy as much as you can.

Page 20: 1 Abstract Modern computing demands large memory, many CPUs and elaborate storage. How do you meet these demands for your OpenEdge environment? In this.

20

NUMA

Page 21: 1 Abstract Modern computing demands large memory, many CPUs and elaborate storage. How do you meet these demands for your OpenEdge environment? In this.

21

NUMA stands for Non-Uniform Memory Access

In layman's terms, a NUMA machine is the coupling of severalmachines in a single physical unit, running a single Operating System. Like a "cluster" (if you squint).

Page 22: 1 Abstract Modern computing demands large memory, many CPUs and elaborate storage. How do you meet these demands for your OpenEdge environment? In this.

22

The NUMA Quotient

This is the time it takes for a CPU to read memory on a remotenode as compared to reading memory locally

Page 23: 1 Abstract Modern computing demands large memory, many CPUs and elaborate storage. How do you meet these demands for your OpenEdge environment? In this.

23

How do you know if you have a NUMA machine?

Page 24: 1 Abstract Modern computing demands large memory, many CPUs and elaborate storage. How do you meet these demands for your OpenEdge environment? In this.

24

So now you know you have a NUMA machine.

Is all hope lost?

Page 25: 1 Abstract Modern computing demands large memory, many CPUs and elaborate storage. How do you meet these demands for your OpenEdge environment? In this.

25

On some machines you can pin memory and processes to a particular node.

On some you can disable nodes but may lose memory too

Change the OpenEdge configuration to client/server

Look into OS Specfic NUMA configuration options

Page 26: 1 Abstract Modern computing demands large memory, many CPUs and elaborate storage. How do you meet these demands for your OpenEdge environment? In this.

26

Storage

Page 27: 1 Abstract Modern computing demands large memory, many CPUs and elaborate storage. How do you meet these demands for your OpenEdge environment? In this.

27

RAID

Page 28: 1 Abstract Modern computing demands large memory, many CPUs and elaborate storage. How do you meet these demands for your OpenEdge environment? In this.

28

RAIDWhy?

raid diagrams are from wikipedia

Page 29: 1 Abstract Modern computing demands large memory, many CPUs and elaborate storage. How do you meet these demands for your OpenEdge environment? In this.

29

RAID 0: block striping

performance but NO reliability

Page 30: 1 Abstract Modern computing demands large memory, many CPUs and elaborate storage. How do you meet these demands for your OpenEdge environment? In this.

30

RAID 1: disk mirroring

reliability – two copies

Page 31: 1 Abstract Modern computing demands large memory, many CPUs and elaborate storage. How do you meet these demands for your OpenEdge environment? In this.

31

RAID 5: block striping with parity

reliability and bad performance

all writes must update 2 drives

Page 32: 1 Abstract Modern computing demands large memory, many CPUs and elaborate storage. How do you meet these demands for your OpenEdge environment? In this.

32

RAID 6: block striping with two parity disks

reliability and worse performance

all writes must update 3 drives

Page 33: 1 Abstract Modern computing demands large memory, many CPUs and elaborate storage. How do you meet these demands for your OpenEdge environment? In this.

33

RAID 6: block striping with two parity disks

reliability and worse performance

all writes must update 3 driveswrite to block E1 has to wait for write to block A3

Page 34: 1 Abstract Modern computing demands large memory, many CPUs and elaborate storage. How do you meet these demands for your OpenEdge environment? In this.

34

RAID 10: disk mirroring and block striping

reliability – two copies

performance – data spread over multiple drives

Page 35: 1 Abstract Modern computing demands large memory, many CPUs and elaborate storage. How do you meet these demands for your OpenEdge environment? In this.

35

RAID 10: disk mirroring and block striping

reliability – two copies

performance – data spread over multiple drives

Page 36: 1 Abstract Modern computing demands large memory, many CPUs and elaborate storage. How do you meet these demands for your OpenEdge environment? In this.

36

RAID choices

Type Description Use ?

RAID 0 Block striping (no redundancy at all) Bad

RAID 1 Mirroring OK

RAID 10 Block striping + mirroring Excellent

RAID 2 Bit level striping, dedicated parity Bad

RAID 3 Byte level striping, dedicated parity Bad

RAID 4 Block striping, dedicated parity Bad

RAID 5 Block striping with striped parity Poor

RAID 6 Block striping with dual striped parity Poor

RAID 60, 6+, DP, etc. Marketing Poor

Page 37: 1 Abstract Modern computing demands large memory, many CPUs and elaborate storage. How do you meet these demands for your OpenEdge environment? In this.

37

RAID choices – only 1 good one

Type Description Use ?

RAID 0 Block striping (no redundancy at all) Bad

RAID 1 Mirroring OK

RAID 10 Block striping + mirroring Excellent

RAID 2 Bit level striping, dedicated parity Bad

RAID 3 Byte level striping, dedicated parity Bad

RAID 4 Block striping, dedicated parity Bad

RAID 5 Block striping with striped parity Poor

RAID 6 Block striping with dual striped parity Poor

RAID 60, 6+, DP, etc. Marketing Poor

Advancements in technology can never make a silk purse from theRAID 5 / 6 sow's ear. Vendors can't fool mother nature !!!

Local disks will beat SAN storage

Page 38: 1 Abstract Modern computing demands large memory, many CPUs and elaborate storage. How do you meet these demands for your OpenEdge environment? In this.

38

SSD

Page 39: 1 Abstract Modern computing demands large memory, many CPUs and elaborate storage. How do you meet these demands for your OpenEdge environment? In this.

39

SSD

Fetching a record that is already in the database buffer pool is 75 times faster than SSD !!!!

Prices have dropped – a LOT. Low end is $0.50 per gigabyte

Reliability is now very good – better than spinning rust

SSD devices are fast, and getting faster

Use Mirrored pairs (RAID 1) – NO RAID 5 or any striping

When you need to replace one, you may not be able to get matching units anymore.

Page 40: 1 Abstract Modern computing demands large memory, many CPUs and elaborate storage. How do you meet these demands for your OpenEdge environment? In this.

40

Time to grow a 96 MB file

Disk Type Duration Speed

Spinning Disk 7 – 10 9 - 13 MB/Sec

SSD 1 - 2 43 – 96 MB/Sec

Page 41: 1 Abstract Modern computing demands large memory, many CPUs and elaborate storage. How do you meet these demands for your OpenEdge environment? In this.

41

The PROGRESS Bravepoint businesshas many customers running with SSDdrives successfully.

Either Complete SSD, Hybrid, or a Mix

Page 42: 1 Abstract Modern computing demands large memory, many CPUs and elaborate storage. How do you meet these demands for your OpenEdge environment? In this.

42

… in Big B You Should Trust!

Layer Time # of Recs # of Ops Cost per Op

Relative

Progress to –B 0.96 100,000 203,473 0.000005 1

-B to FS Cache 10.24 100,000 26,711 0.000383 75

FS Cache to SAN 5.93 100,000 26,711 0.000222 45

-B to SAN Cache* 11.17 100,000 26,711 0.000605 120

SAN Cache to Disk 200.35 100,000 26,711 0.007500 1500

-B to Disk 211.52 100,000 26,711 0.007919 1585

* Used concurrent IO to eliminate FS cache

42

courtesy of Tom Bascom

Page 43: 1 Abstract Modern computing demands large memory, many CPUs and elaborate storage. How do you meet these demands for your OpenEdge environment? In this.

43

Mid-range

server replacement example

Page 44: 1 Abstract Modern computing demands large memory, many CPUs and elaborate storage. How do you meet these demands for your OpenEdge environment? In this.

44

Page 45: 1 Abstract Modern computing demands large memory, many CPUs and elaborate storage. How do you meet these demands for your OpenEdge environment? In this.

45

Name Qty Value

CPU (32) 4 Intel Xeon E5 4603, 8 cores

RAM (32 GB) 8 1866MT/s 4 GB RDIMM

Ether 1 Intel GB Ethernet Card

Disk Controller 1 PERC H10

Storage, hot plug 8 146 GB 15,000 rpm SAS

Stuff ? dual psu, case, power cord, etc.

Operating system 1 Linux, not included

Page 46: 1 Abstract Modern computing demands large memory, many CPUs and elaborate storage. How do you meet these demands for your OpenEdge environment? In this.

47

Page 47: 1 Abstract Modern computing demands large memory, many CPUs and elaborate storage. How do you meet these demands for your OpenEdge environment? In this.

48

Software

Page 48: 1 Abstract Modern computing demands large memory, many CPUs and elaborate storage. How do you meet these demands for your OpenEdge environment? In this.

49

Modern OpenEdge RDBMS

Current version of you application

Use them on your new server

Page 49: 1 Abstract Modern computing demands large memory, many CPUs and elaborate storage. How do you meet these demands for your OpenEdge environment? In this.

50

Get Current.

Better be on 11.5 or later

Page 50: 1 Abstract Modern computing demands large memory, many CPUs and elaborate storage. How do you meet these demands for your OpenEdge environment? In this.

51

Page 51: 1 Abstract Modern computing demands large memory, many CPUs and elaborate storage. How do you meet these demands for your OpenEdge environment? In this.

52

Client database-request statement caching

Top is last procedure executed

Bottom is first procedure executed

Top down, newest to oldest

One time full stack

Continuous full stack

Continuous current location

Procedure Call Stack

# Procedure Name File Name

19 : reallyLongNamedInternalProcedure3 proctestb.r 12 : reallyLongNamedInternalProcedure2 proctestb.r 5 : reallyLongNamedInternalProcedure1 proctesta.r445 : reallyLongNamedInternalProcedure0 proctesta.r 1 : /usr1/stmtest/p72340_Untitled1.ped

Newest

Oldest

Top

Bottom

Page 52: 1 Abstract Modern computing demands large memory, many CPUs and elaborate storage. How do you meet these demands for your OpenEdge environment? In this.

53

_tablestats_indexstats_usertablestats_userindexstats

Application ProfilerCompile XREFEtc….

Session: Finding Bottlenecks in ABL Applications using Profiling – Friday 14:45 (Cologne)

Page 53: 1 Abstract Modern computing demands large memory, many CPUs and elaborate storage. How do you meet these demands for your OpenEdge environment? In this.

54

Advanced Tuning Techniques

Page 54: 1 Abstract Modern computing demands large memory, many CPUs and elaborate storage. How do you meet these demands for your OpenEdge environment? In this.

55

Get Current.

9.1E is over 10 years old!

10.1C is over 6 years old!

9.0A 10.0A 9.1E04 10.2B 11.3.2

1998 2000 2002 2004 2006 2008 2010 2012 2014 20160

5000

10000

15000

20000

25000

How many MB does $100 USD Buy

11.5.0

Page 55: 1 Abstract Modern computing demands large memory, many CPUs and elaborate storage. How do you meet these demands for your OpenEdge environment? In this.

56

-B2

Page 56: 1 Abstract Modern computing demands large memory, many CPUs and elaborate storage. How do you meet these demands for your OpenEdge environment? In this.

57

-lruskips

Page 57: 1 Abstract Modern computing demands large memory, many CPUs and elaborate storage. How do you meet these demands for your OpenEdge environment? In this.

58

-napmax

Page 58: 1 Abstract Modern computing demands large memory, many CPUs and elaborate storage. How do you meet these demands for your OpenEdge environment? In this.

59

index rebuild

Page 59: 1 Abstract Modern computing demands large memory, many CPUs and elaborate storage. How do you meet these demands for your OpenEdge environment? In this.

60

Index Rebuild Performance (OE 10.2B06, OE 11.2)

sort block size (8K – 64K, note new limit)

# threads for data scan phase

merge block size ( default -TB)

merge pool fraction of system memory (in %)

# threads per concurrent sort group merging-mergethreads

# concurrent sort group merging-threadnum

# merge buffers to merge each merge pass-TM

report system usage statistics

a bit quieter than before

-rusage

-silent

-TB

-datascanthreads

-TMB

-TF

X -threadnum = 1.5 X #CPUs

2 or 4

32

-rusage

-silent

64

1.5 X #CPUs

64

80%

Page 60: 1 Abstract Modern computing demands large memory, many CPUs and elaborate storage. How do you meet these demands for your OpenEdge environment? In this.

61

Index Rebuild Performance (OE 10.2B06, OE 11.2)

sort block size (8K – 64K, note new limit)

# threads for data scan phase

merge block size ( default -TB)

merge pool fraction of system memory (in %)

# threads per concurrent sort group merging-mergethreads

# concurrent sort group merging-threadnum

# merge buffers to merge each merge pass-TM

report system usage statistics

a bit quieter than before

-rusage

-silent

-TB

-datascanthreads

-TMB

-TF

X -threadnum = 1.5 X #CPUs

2 or 4

32

-rusage

-silent

64

1.5 X #CPUs

64

80%

12 ½ hours 2 ½

hours

5X improvement!

Page 61: 1 Abstract Modern computing demands large memory, many CPUs and elaborate storage. How do you meet these demands for your OpenEdge environment? In this.

62

-omsize

Page 62: 1 Abstract Modern computing demands large memory, many CPUs and elaborate storage. How do you meet these demands for your OpenEdge environment? In this.

63

How to manage Object Mapping Cache

Do I have a problem?

• Check latch statisticsdefine variable prev-latches as integer.

repeat:

find _latch where _latch-name = "MTL_OM".

display _Latch-Name

_Latch-Lock /* # times latch acquired */

_Latch-Wait /* # time conflict occurred */

_Latch-Lock - prev-latches label "latch/sec".

prev-latches = _Latch-Lock.

pause 1.

end.

Page 63: 1 Abstract Modern computing demands large memory, many CPUs and elaborate storage. How do you meet these demands for your OpenEdge environment? In this.

64

The dawn rises only when the rooster crows.

Burmese proverb

Page 64: 1 Abstract Modern computing demands large memory, many CPUs and elaborate storage. How do you meet these demands for your OpenEdge environment? In this.

65

Answersemail:

[email protected]

[email protected]


Recommended