Free Load Testing Tools for Oracle Database – Which One Do I Use?

Post on 14-Apr-2017

120 views 2 download

Transcript of Free Load Testing Tools for Oracle Database – Which One Do I Use?

BASEL BERN BRUGG DÜSSELDORF FRANKFURT A.M. FREIBURG I.BR. GENEVA

HAMBURG COPENHAGEN LAUSANNE MUNICH STUTTGART VIENNA ZURICH

Free Load Testing Tools for Oracle

Database – Which One Do I Use?Christian Antognini

8 November 2016

@ChrisAntognini

Free Load Testing Tools for Oracle Database – Which One Do I Use?2 08/11/2016

Senior principal consultant, trainer and partner at Trivadis

christian.antognini@trivadis.com

http://antognini.ch

Focus: get the most out of Oracle Database

Logical and physical database design

Query optimizer

Application performance management

Author of Troubleshooting Oracle Performance (Apress, 2008/14)

OakTable Network, Oracle ACE Director

Agenda

Free Load Testing Tools for Oracle Database – Which One Do I Use?3 08/11/2016

1. Introduction

2. Free Load Testing Tools I Use

3. Summary

Free Load Testing Tools for Oracle Database – Which One Do I Use?4 08/11/2016

Introduction

Common Situations Leading to Database Load

Generation

Free Load Testing Tools for Oracle Database – Which One Do I Use?5 08/11/2016

Perform usability and functionality checks of tools or utilities that require a

non-trivial load to be carried out

Assess the performance of a (new) platform or storage subsystem

Verify whether a set of SQL statements executed on a specific environment

and/or configuration fulfils the expected performance requirements

Golden Rule

Free Load Testing Tools for Oracle Database – Which One Do I Use?6 08/11/2016

Use the right tool

for the right job!

Free Load Testing Tools in My Toolbox

Free Load Testing Tools for Oracle Database – Which One Do I Use?7 08/11/2016

Swingbench

The Silly Little Oracle Benchmark (SLOB)

Apache JMeter

Free Load Testing Tools for Oracle Database – Which One Do I Use?8 08/11/2016

Swingbench

What’s Swingbench?

Free Load Testing Tools for Oracle Database – Which One Do I Use?9 08/11/2016

Load generator designed to stress test Oracle Database

Includes four configurable synthetic benchmarks

OrderEntry, SalesHistory, CallingCircle and StressTest

Extensible with user-defined transactions (StressTest provides an example)

Consists of several CLI and GUI utilities

Developed by Dominic Giles

Available at http://www.dominicgiles.com/swingbench.html

What Can Swingbench Do?

Free Load Testing Tools for Oracle Database – Which One Do I Use?10 08/11/2016

Carry out, with minimal effort, all necessary operations to run one of the four

provided benchmarks

Create test schema (incl. data population)

Generate load

Store key performance indicators about test run

Swingbench Key Components – Setup

Free Load Testing Tools for Oracle Database – Which One Do I Use?11 11/8/2016

Three wizards, that also expose a CLI, are available: OrderEntry, SalesHistory

and CallingCircle

StressTest doesn’t have a wizard because it requires no setup

XML file config dataoewizard

shwizard

ccwizard

Swingbench Key Components – Load Generation

Free Load Testing Tools for Oracle Database – Which One Do I Use?12 11/8/2016

swingbench

minibench

charbench

XML file

XML fileresults2pdf

PDF file

config

load KPI

Swingbench: Demo

Free Load Testing Tools for Oracle Database – Which One Do I Use?13 08/11/2016

Swingbench: Example of Utilization (1)

Free Load Testing Tools for Oracle Database – Which One Do I Use?14 08/11/2016

Purpose

Observe the impact of a vMotion

started while a database server

is subject to a non-trivial load

Benchmark

OrderEntry, scale 10

900 transactions/second

Swingbench: Example of Utilization (1)

Free Load Testing Tools for Oracle Database – Which One Do I Use?15 08/11/2016

0

20

40

60

80

13:5

8:0

8

13:5

8:1

8

13:5

8:2

8

13:5

8:3

8

13:5

8:4

8

13:5

8:5

8

13:5

9:0

8

13:5

9:1

8

13:5

9:2

8

13:5

9:3

8

13:5

9:4

8

13:5

9:5

8

14:0

0:0

8

14:0

0:1

8

14:0

0:2

8

14:0

0:3

8

14:0

0:4

8

14:0

1:0

2

14:0

1:1

3

14:0

1:2

3

14:0

1:3

3

14:0

1:4

3

14:0

1:5

3

14:0

2:0

3

14:0

2:1

3

14:0

2:2

3

14:0

2:3

3

AA

S

Time

vMotion took 79 seconds

Swingbench: Example of Utilization (2)

Free Load Testing Tools for Oracle Database – Which One Do I Use?16 11/8/2016

Purpose

Quantify the overhead of TDE

Compare encryption algorithms

Benchmark

OrderEntry, scale 50

160 distinct tests (30 minutes each)

– Users: 10..100

– Encryption: None, AES128,

AES192, AES256

– With and without AES-NI

– Buffer cache: 7GB and 70GB

Swingbench: Example of Utilization (2)

Free Load Testing Tools for Oracle Database – Which One Do I Use?17 08/11/2016

0

500

1000

1500

2000

2500

No Yes

Tra

nsa

cti

on

s/S

eco

nd

AES-NI

AES128

AES192

AES256

None

0

2

4

6

8

10

12

14

No Yes

CP

U/T

ran

sacti

on

[m

s]

AES-NI

AES128

AES192

AES256

None

Free Load Testing Tools for Oracle Database – Which One Do I Use?18 08/11/2016

The Silly Little Oracle Benchmark

(SLOB)

What’s SLOB?

Free Load Testing Tools for Oracle Database – Which One Do I Use?19 08/11/2016

Platform performance and stability-testing framework that

makes Oracle Database execute SQL statements

Synthetic benchmark

Consists of a few scripts

Developed by Kevin Closson

Available at https://kevinclosson.net/slob/

What Can SLOB Do?

Free Load Testing Tools for Oracle Database – Which One Do I Use?20 08/11/2016

Create one or several test schemas (incl. data population)

Generate load

Random PIO and/or LIO

– Generation of sequential/large PIO by forcing a FTS (e.g. invisible index)

Read only or read write

Lite or heavy redo generation

Store DB as well as OS key performance indicators about test run

SLOB Key Components – Setup

Free Load Testing Tools for Oracle Database – Which One Do I Use?21 11/8/2016

slob.conf config datasetup.sh

SLOB Key Components – Load Generation

Free Load Testing Tools for Oracle Database – Which One Do I Use?22 11/8/2016

runit.sh

slob.conf

AWR

reports

iostat

mpstat

vmstat

awr_info.sh

text file

config

load

SLOB: Demo

Free Load Testing Tools for Oracle Database – Which One Do I Use?26 08/11/2016

SLOB: Example of Utilization (1)

Free Load Testing Tools for Oracle Database – Which One Do I Use?27 08/11/2016

Purpose

Find out the maximum number

of random IOPS (and their

average latency) that a storage

subsystem can sustain

Benchmark

100GB

Read-only PIO/LIO

SLOB: Example of Utilization (1)

Free Load Testing Tools for Oracle Database – Which One Do I Use?28 08/11/2016

72563

93546

103718 103299 101258

48 64 96 128 160

Ph

ysi

cal

Read

s p

er

Seco

nd

Sessions

2.9 2.8 4.0 5.2 6.3

31 33

44

60

78

48 64 96 128 160

Late

ncy i

n M

illi

seco

nd

s

Sessions

db file sequential reads db file parallel reads

SLOB: Example of Utilization (2)

Free Load Testing Tools for Oracle Database – Which One Do I Use?29 08/11/2016

Purpose

Assess disk I/O performance in

a VMware environment

Questions

– What’s the impact of running

several DB per VM?

– What’s the impact of running

several VM per server?

Benchmark

100GB

1/2/4/8 VM

One/several DB per VM

Each server running an increasing

number of sessions

Read-only and read-write tests

SLOB: Example of Utilization (2)

Free Load Testing Tools for Oracle Database – Which One Do I Use?30 08/11/2016

SLOB: Example of Utilization (2)

Free Load Testing Tools for Oracle Database – Which One Do I Use?31 08/11/2016

Free Load Testing Tools for Oracle Database – Which One Do I Use?32 08/11/2016

Apache JMeter

What’s JMeter?

Free Load Testing Tools for Oracle Database – Which One Do I Use?33 08/11/2016

Application designed to load test functional behavior and measure

performance

No out-of-the box benchmark available DIY

Consists of several CLI and GUI utilities

Open source project supported by a number of contributors

Available at http://jmeter.apache.org/

What Can JMeter Do?

Free Load Testing Tools for Oracle Database – Which One Do I Use?34 08/11/2016

Many things!

For the intent of this presentation:

Execute SQL statements

through JDBC

Verify whether the executions

return the expected output

and/or in the expected time

Store key performance

indicators

But it’s “only” a framework… it requires

time to “code” a benchmark

Use real schema with data

Use the SQL statements to be

verified

– Bind variables can be either

generated or provided as input

SLOB Key Components – Load Generation

Free Load Testing Tools for Oracle Database – Which One Do I Use?35 11/8/2016

front end

GUI/CLI

test plan

user

defined

output

text file

config

loadKPI

log

JMeter: Demo

Free Load Testing Tools for Oracle Database – Which One Do I Use?36 08/11/2016

JMeter: Example of Utilization (1)

Free Load Testing Tools for Oracle Database – Which One Do I Use?37 08/11/2016

Purpose

Verify that a set of queries

performs acceptably under load

Verify that the DB server

supports the expected load

Benchmark

33 distinct queries, each with each

own set of bind variable values,

randomly picked out

100 queries/minute

JMeter: Example of Utilization (2)

Free Load Testing Tools for Oracle Database – Which One Do I Use?38 08/11/2016

0

500

1000

1500

2000

2500

3000

3500

4000

407

408

503

114

303

111

115

112

308

101

301

117

204

113

118

105

306

116

505

120

201

504

304

305

307

404

403

401

501

203

202

502

302A

ve

rag

e E

lap

se

d T

ime

[m

s]

Query

JMeter: Example of Utilization (3)

Free Load Testing Tools for Oracle Database – Which One Do I Use?39 08/11/2016

AAS during a period of 13 minutes

Free Load Testing Tools for Oracle Database – Which One Do I Use?40 08/11/2016

Summary

Comparison

Free Load Testing Tools for Oracle Database – Which One Do I Use?41 08/11/2016

Swingbench SLOB JMeter

Can generates load forOracle

Database

Oracle

Database

any DB with

JDBC support

Synthetic benchmark

User-defined benchmark ()

Effort to implement minimal minimal low high

GUI

CLI for automation with scripts

Distributed load generation

Tool of Choice for Common Situations Leading to

Database Load Generation

Free Load Testing Tools for Oracle Database – Which One Do I Use?42 08/11/2016

Perform usability and functionality checks of tools or utilities that require a

non-trivial load to be carried out

Swingbench

Assess the performance of a (new) platform or storage subsystem

SLOB

Verify whether a set of SQL statements executed on a specific environment

and/or configuration fulfils the expected performance requirements

Apache JMeter

Summary

Free Load Testing Tools for Oracle Database – Which One Do I Use?43 08/11/2016

No single tool can cover all

requirements

If used correctly, Swingbench and

SLOB are simple and effective tools

To run a specific set of SQL

statements don’t spend time build

your own script/tool, use JMeter

Questions and Answers

Christian Antognini

Senior Principal Consultant

christian.antognini@trivadis.com

@ChrisAntognini

08/11/2016 Free Load Testing Tools for Oracle Database – Which One Do I Use?44