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 file
results2pdf
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:58:08
13:58:18
13:58:28
13:58:38
13:58:48
13:58:58
13:59:08
13:59:18
13:59:28
13:59:38
13:59:48
13:59:58
14:00:08
14:00:18
14:00:28
14:00:38
14:00:48
14:01:02
14:01:13
14:01:23
14:01:33
14:01:43
14:01:53
14:02:03
14:02:13
14:02:23
14:02:33
AAS
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
Transactions/Second
AES-NI
AES128
AES192
AES256
None
0
2
4
6
8
10
12
14
No Yes
CPU/Transaction[ms]
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 data
setup.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
PhysicalReadsperSecond
Sessions
2.9 2.8 4.0 5.2 6.3
31 33
44
60
78
48 64 96 128 160
LatencyinMilliseconds
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
load
KPI
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
302
AverageElapsedTime[ms]
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 for
Oracle
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

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

  • 1.
    BASEL BERN BRUGGDÜ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
  • 2.
    @ChrisAntognini Free Load TestingTools 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
  • 3.
    Agenda Free Load TestingTools for Oracle Database – Which One Do I Use?3 08/11/2016 1. Introduction 2. Free Load Testing Tools I Use 3. Summary
  • 4.
    Free Load TestingTools for Oracle Database – Which One Do I Use?4 08/11/2016 Introduction
  • 5.
    Common Situations Leadingto 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
  • 6.
    Golden Rule Free LoadTesting Tools for Oracle Database – Which One Do I Use?6 08/11/2016 Use the right tool for the right job!
  • 7.
    Free Load TestingTools 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
  • 8.
    Free Load TestingTools for Oracle Database – Which One Do I Use?8 08/11/2016 Swingbench
  • 9.
    What’s Swingbench? Free LoadTesting 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
  • 10.
    What Can SwingbenchDo? 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
  • 11.
    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
  • 12.
    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 file results2pdf PDF file config load KPI
  • 13.
    Swingbench: Demo Free LoadTesting Tools for Oracle Database – Which One Do I Use?13 08/11/2016
  • 14.
    Swingbench: Example ofUtilization (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
  • 15.
    Swingbench: Example ofUtilization (1) Free Load Testing Tools for Oracle Database – Which One Do I Use?15 08/11/2016 0 20 40 60 80 13:58:08 13:58:18 13:58:28 13:58:38 13:58:48 13:58:58 13:59:08 13:59:18 13:59:28 13:59:38 13:59:48 13:59:58 14:00:08 14:00:18 14:00:28 14:00:38 14:00:48 14:01:02 14:01:13 14:01:23 14:01:33 14:01:43 14:01:53 14:02:03 14:02:13 14:02:23 14:02:33 AAS Time vMotion took 79 seconds
  • 16.
    Swingbench: Example ofUtilization (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
  • 17.
    Swingbench: Example ofUtilization (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 Transactions/Second AES-NI AES128 AES192 AES256 None 0 2 4 6 8 10 12 14 No Yes CPU/Transaction[ms] AES-NI AES128 AES192 AES256 None
  • 18.
    Free Load TestingTools for Oracle Database – Which One Do I Use?18 08/11/2016 The Silly Little Oracle Benchmark (SLOB)
  • 19.
    What’s SLOB? Free LoadTesting 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/
  • 20.
    What Can SLOBDo? 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
  • 21.
    SLOB Key Components– Setup Free Load Testing Tools for Oracle Database – Which One Do I Use?21 11/8/2016 slob.conf config data setup.sh
  • 22.
    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
  • 23.
    SLOB: Demo Free LoadTesting Tools for Oracle Database – Which One Do I Use?26 08/11/2016
  • 24.
    SLOB: Example ofUtilization (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
  • 25.
    SLOB: Example ofUtilization (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 PhysicalReadsperSecond Sessions 2.9 2.8 4.0 5.2 6.3 31 33 44 60 78 48 64 96 128 160 LatencyinMilliseconds Sessions db file sequential reads db file parallel reads
  • 26.
    SLOB: Example ofUtilization (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
  • 27.
    SLOB: Example ofUtilization (2) Free Load Testing Tools for Oracle Database – Which One Do I Use?30 08/11/2016
  • 28.
    SLOB: Example ofUtilization (2) Free Load Testing Tools for Oracle Database – Which One Do I Use?31 08/11/2016
  • 29.
    Free Load TestingTools for Oracle Database – Which One Do I Use?32 08/11/2016 Apache JMeter
  • 30.
    What’s JMeter? Free LoadTesting 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/
  • 31.
    What Can JMeterDo? 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
  • 32.
    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 load KPI log
  • 33.
    JMeter: Demo Free LoadTesting Tools for Oracle Database – Which One Do I Use?36 08/11/2016
  • 34.
    JMeter: Example ofUtilization (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
  • 35.
    JMeter: Example ofUtilization (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 302 AverageElapsedTime[ms] Query
  • 36.
    JMeter: Example ofUtilization (3) Free Load Testing Tools for Oracle Database – Which One Do I Use?39 08/11/2016 AAS during a period of 13 minutes
  • 37.
    Free Load TestingTools for Oracle Database – Which One Do I Use?40 08/11/2016 Summary
  • 38.
    Comparison Free Load TestingTools for Oracle Database – Which One Do I Use?41 08/11/2016 Swingbench SLOB JMeter Can generates load for Oracle 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  
  • 39.
    Tool of Choicefor 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
  • 40.
    Summary Free Load TestingTools 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
  • 41.
    Questions and Answers ChristianAntognini Senior Principal Consultant christian.antognini@trivadis.com @ChrisAntognini 08/11/2016 Free Load Testing Tools for Oracle Database – Which One Do I Use?44