52

Oracle Exalytics In-Memory Machine Performance Benchmarks and Best Practices Lionel Hsu Consulting Member of Technical Staff Nikolai Potapov Consulting

Embed Size (px)

Citation preview

Page 1: Oracle Exalytics In-Memory Machine Performance Benchmarks and Best Practices Lionel Hsu Consulting Member of Technical Staff Nikolai Potapov Consulting
Page 2: Oracle Exalytics In-Memory Machine Performance Benchmarks and Best Practices Lionel Hsu Consulting Member of Technical Staff Nikolai Potapov Consulting

Oracle Exalytics In-Memory Machine Performance Benchmarks and Best Practices

Lionel HsuConsulting Member of Technical Staff

Nikolai PotapovConsulting Member of Technical Staff

October 1, 2014

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |

Page 3: Oracle Exalytics In-Memory Machine Performance Benchmarks and Best Practices Lionel Hsu Consulting Member of Technical Staff Nikolai Potapov Consulting

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |

Safe Harbor StatementThe following is intended to outline our general product direction. It is intended for information purposes only, and may not be incorporated into any contract. It is not a commitment to deliver any material, code, or functionality, and should not be relied upon in making purchasing decisions. The development, release, and timing of any features or functionality described for Oracle’s products remains at the sole discretion of Oracle.

Page 4: Oracle Exalytics In-Memory Machine Performance Benchmarks and Best Practices Lionel Hsu Consulting Member of Technical Staff Nikolai Potapov Consulting

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |

Agenda

Exalytics evolution

Essbase benchmarks

Best practices: tuning tips and tools

Summary

1

2

3

4

Page 5: Oracle Exalytics In-Memory Machine Performance Benchmarks and Best Practices Lionel Hsu Consulting Member of Technical Staff Nikolai Potapov Consulting

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |

Agenda

Exalytics evolution

Essbase benchmarks

Best practices: tuning tips and tools

Summary

1

2

3

4

• NEW: X4-4 announced• Super-SKU CPU• Exalytics hardware-software evolution

Page 6: Oracle Exalytics In-Memory Machine Performance Benchmarks and Best Practices Lionel Hsu Consulting Member of Technical Staff Nikolai Potapov Consulting

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |

Exalytics X4-4Engineered System for Extreme Analytics

Page 7: Oracle Exalytics In-Memory Machine Performance Benchmarks and Best Practices Lionel Hsu Consulting Member of Technical Staff Nikolai Potapov Consulting

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |

Exalytics X4-4 specsHardware

• Memory– 2 TB DRAM

• Compute– 4 Intel® Xeon® E7-8895 v2, 60 cores total

• Networking– QDR 40 Gbps InfiniBand

– 10 Gbps Ethernet

• Storage– 2.4TB PCI Flash

– 7.2 TBs of raw disk capacity

SoftwareOracle BI Foundation SuiteOracle EPM

Exalytics only In-Memory Software:– OBIEE Accelerator– Essbase Accelerator– In-Memory Data Caching– BI Publisher Accelerator

Page 8: Oracle Exalytics In-Memory Machine Performance Benchmarks and Best Practices Lionel Hsu Consulting Member of Technical Staff Nikolai Potapov Consulting

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |

Super-SKU CPU: Intel® Xeon® E7-8895 v2

Dilemma:

the more Cores per Socket – the lower Turbo speed possible for that CPU

Solution:

“Secret sauce” - processor specifically designed for

Oracle products’ workloads

Solution:

Clock speed 2.8GHz to 3.6GHz

Solution:

Clock speed can be configured for specific use

case

Page 9: Oracle Exalytics In-Memory Machine Performance Benchmarks and Best Practices Lionel Hsu Consulting Member of Technical Staff Nikolai Potapov Consulting

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |

Exalytics evolution

X2-4X3-4

X4-4Upgrade Kit

1 TB RAM4 Intel® Xeon® E7-487040 physical cores total3.6 TBs of raw disk capacity40 Gbps InfiniBand – 2 ports10 Gbps Ethernet – 2 ports1 Gbps Ethernet – 4 ports

2 TB RAM4 Intel® Xeon® E7-487040 physical cores total2.4TB PCI Flash5.4 TBs of raw disk capacity

40 Gbps InfiniBand – 2 ports10 Gbps Ethernet – 2 ports 1 Gbps Ethernet – 4 ports

2 TB DRAM4 Intel® Xeon® E7-8895 v260 physical cores total2.4TB PCI Flash7.2 TBs of raw disk capacity40 Gbps InfiniBand – 2 ports10 Gbps Ethernet- 4 ports

Flash Upgrade kit

Memory and Flash Upgrade kit

T5-8

+ 1TB RAM+ 2.4 TB PCI Flash+ bigger disks

+ Super-SKU CPU+ even bigger disks

Page 10: Oracle Exalytics In-Memory Machine Performance Benchmarks and Best Practices Lionel Hsu Consulting Member of Technical Staff Nikolai Potapov Consulting

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |

Agenda

Exalytics evolution

Essbase benchmarks

Best practices: tuning tips and tools

Summary

1

2

3

4

• What is Essbase for Exalytics?• Established benchmarks• New features

Page 11: Oracle Exalytics In-Memory Machine Performance Benchmarks and Best Practices Lionel Hsu Consulting Member of Technical Staff Nikolai Potapov Consulting

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |

Exalytics only In-Memory Software option:

Essbase Accelerator

Essbase on Oracle Exalytics features a number of optimizations to leverage the in-memory capabilities of Exalytics, including improvements to kernel and overall storage layer performance, enhancements to parallel operations, enhanced MDX syntax and a high performance MDX query engine

Essbase in Exalytics

Examples of dimension hierarchy:• Time: Day->Week->Month->Qtr->Year• Product: Product Line->Product Family->Product Cat->Product• Location: city->state->country

Essbase

The industry-leading multi-dimensional online analytical processing (MOLAP) server, designed to help business users forecast likely business performance levels and deliver "what-if" analyses for varying conditions.

•A multidimensional database to build analytic applications

•Used to analyze summarized data

•Enables business users to analyze business data in multiple views at different consolidation level

Page 12: Oracle Exalytics In-Memory Machine Performance Benchmarks and Best Practices Lionel Hsu Consulting Member of Technical Staff Nikolai Potapov Consulting

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |

Exalytics Day 0 benchmark

One of the most extreme cases in terms of Essbase BSO workload.

Does stress Essbase kernel fundamentals.

Improvements in kernel will lead in gains across many different workloads.

BSO multi-user mixed workload

10 20 30 40 50 6005

1015202530354045

0

20

40

60

80

100

CPU%, X3-4 CPU%, X4-4 TPS, X3-4 TPS, X4-4Threads

TPS CPU,%

essbase.cfg: SERVERTHREADS =60; MAXTOTALACTIVETRANSACTIONS=60; MAXACTIVEUPDATETRANSACTIONS=60

Subject to Change

Page 13: Oracle Exalytics In-Memory Machine Performance Benchmarks and Best Practices Lionel Hsu Consulting Member of Technical Staff Nikolai Potapov Consulting

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |

Exalytics value for EssbaseBSO kernel improvements

Before Exalytics(11.1.2.1)

X2-4(11.1.2.2)

X3-4(11.1.2.3.500)

X4-4(current)

0

5

10

15

20

25

30

35

40

45

TPS, ExalyticsTPS, commodityTPS

Subject to Change

Page 14: Oracle Exalytics In-Memory Machine Performance Benchmarks and Best Practices Lionel Hsu Consulting Member of Technical Staff Nikolai Potapov Consulting

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |

Hardware only difference: X3-4 vs. X4-4Essbase 11.1.2.3.500

Setting X3-4 X4-4 % improvementASO Dimension build 656.3 509.1 22.4

ASO Dataload DLTHREADSPREPARE 24 3834.8 2677.8 30.2

ASO Aggregates build CALCPARALLEL 30 3680.0 2787.5 24.3

ASO Restructure CALCPARALLEL 20 4772.9 3558.9 25.4

BSO Dataload DLSINGLETHREADPERSTAGE TRUE305.7 291.6

4.6

BSO Export CALCPARALLEL 40 119.3 90.4 24.2

BSO Restructure RESTRUCTURETHREADS 40 459.1 274.0 40.3

BSO Calc dense, app1 CALCPARALLEL 40 163.4 101.9 37.6

BSO Calc sparse, app1 CALCPARALLEL 40 84.0 66.2 21.3

BSO CALC mixed, app2 CALCPARALLEL 40 38.9 24.3 37.5

BSO CALC mixed, app3 CALCPARALLEL 20 79.3 62.7 21.0

ASO MDX, CUBE_13M app Max TPS up to 100 users 2.5 5.5 119.8

BSO mixed, PSB app Max TPS up to 80 users 26.8 35.8 33.5

BSO MDX bottom up, L app Max TPS up to 60 users 53.1 95.0 79.0

Up to 40%Single user routines

Up to 2XMulti-user workloads

Page 15: Oracle Exalytics In-Memory Machine Performance Benchmarks and Best Practices Lionel Hsu Consulting Member of Technical Staff Nikolai Potapov Consulting

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |

Execute any FIX commands in parallel, eliminate restrictions of CALCPARALLEL

New features: BSO Fixparallel

BEFORE

FIX(@RELATIVE("PK_TOTAL_PACKAGE",0)) Calc Dim("Geography", "Customer", “Family_Product" ); …ENDFIX

AFTER

FIXPARALLEL(16,@RELATIVE("PK_TOTAL_PACKAGE",0)) Calc Dim("Geography", "Customer", “Family_Product" ); …ENDFIXPARALLEL

4X

BSO Calc0

50

100

150

200

250

300

350

CalcparallelFixparallel

Seco

nds

Page 16: Oracle Exalytics In-Memory Machine Performance Benchmarks and Best Practices Lionel Hsu Consulting Member of Technical Staff Nikolai Potapov Consulting

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |

New features: BSO MDX Bottom up calculation

MDX, single user Old NewQ1_C1, sec 7.0 0.1Q2_C1_C2, sec aborted >30 min 0.1Q3_C1_C2_C3, sec aborted >30 min 0.1Q4_C1_C2_C3_C4, sec aborted >30 min 0.1

Q5_C2_ICP, sec aborted >30 min 0.1Q6_FORM_DENSE, sec 0.1 0.1Q7_FORM_SIMPLE, sec 0.1 0.1Q8_C1_C2_HALFC3, sec 127.0 0.1Q9_WITH_MEMBER, sec 15.0 15.0

MDX, multi user 10 201501_MDX_001 0.0 0.01502_MDX_002 0.1 0.11503_MDX_003 0.1 0.11504_MDX_004 0.1 0.1

1505_MDX_005 0.0 0.11506_MDX_006 0.0 0.01507_MDX_007 0.5 0.51508_MDX_008 0.0 0.01511_MDX_011 2.6 3.9

Total Time 3.4 4.8TPS 26.1 36.7

100X+Even single user execution was an issue in previous release. With new feature MDX based on bottom up calculations can be executed in multi-user workloads now.

• ASO like dynamic aggregation in BSO

• Note. Applications are yet to adopt a new design for outlines based on dynamically calculated members to fully benefit from that feature

essbase.cfg: AsoDynamicAggInBso L_app Source FULL

Page 17: Oracle Exalytics In-Memory Machine Performance Benchmarks and Best Practices Lionel Hsu Consulting Member of Technical Staff Nikolai Potapov Consulting

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |

Agenda

Exalytics evolution

Essbase benchmarks

Best practices: tuning tips and tools

Essbase

BI

Summary

1

2

3

4

Page 18: Oracle Exalytics In-Memory Machine Performance Benchmarks and Best Practices Lionel Hsu Consulting Member of Technical Staff Nikolai Potapov Consulting

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |

It’s a lightweight command line tool for generating multi-user workloads against Essbase database. Tool doesn’t require any special knowledge and\or license as other load testing tools do.

(*) Not part of standard installation

Tool: ESSPSRCMD ====================================================================

########### Test Results : TEST_DEMO ############# ===========================================

Number of Users 60 INFO: Performing cube view operation - calculate. total duration in Sec : 300.0 1100_MDX_100x10 Avg RT in sec : 0.12 1200_MDX_100x100 Avg RT in sec : 0.97 1300_MDX_NONEMPTY Avg RT in sec : 0.51 2100_CALC_ADD Avg RT in sec : 1.82 2200_CALC_ALLOCATE Avg RT in sec : 4.52 2300_CALC_DELETE Avg RT in sec : 0.16 2400_CALC_COPY_SLICE Avg RT in sec : 1.59 2500_CALC_CLEAR_SLICE Avg RT in sec : 0.92 Total Transactions are : 13456 Total TPS : 44.85

######### CPU & Memory details ######### =====================================================

Machine Level CPU Details =========================

Average Machine CPU Usage % : 49.44 Average User CPU % : 47.47 Average System CPU % : 1.97 Average IOWait CPU % : 0.00

Process Level CPU Details =========================

EssSvr(PSB)(104861) average CPU % : 47.88

Process Level MEMORY Details =========================

EssSvr(PSB)(104861) peak virtual memory(VSZ) (MB) : 66684 EssSvr(PSB)(104861) peak physical memory(RSS) (MB) : 51991

It does support features:ASO and BSOMDX queriesCALCSParameterizationOS stats

Page 19: Oracle Exalytics In-Memory Machine Performance Benchmarks and Best Practices Lionel Hsu Consulting Member of Technical Staff Nikolai Potapov Consulting

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |

Hint1: Super-SKU CPUexploring conditions for higher Turbo speeds

Config A(1 Socket x 15 Cores)

Config B(3 Socket x 5 Cores)

Difference in Sec

% Difference

“bc" test10428 9548 880 9.22%

"dd" test844 760 84 10.0%

10%"bc" based benchmark: echo '20^2^20' | time -f "%U User, %P CPU" /usr/bin/bc > /dev/null "dc" based benchmark: nohup dd count=1999999980 if=/dev/zero of=/dev/null

“turbostat” package – to monitor CPU Cores frequency

# of Turbo Active Cores 1 2 3-6 7-10 10-15

Max Turbo Frequency, GHz 3.6 3.6 3.5 3.4 3.2

Page 20: Oracle Exalytics In-Memory Machine Performance Benchmarks and Best Practices Lionel Hsu Consulting Member of Technical Staff Nikolai Potapov Consulting

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |

Hint2: parallel zip and Ram drive for backup

Use RAM as intermediate storage option Use parallel zipping

[perfuser@exalyticsX4]$ time tar cvf PSB.tar ./PSB_copy; time gzip PSB.tar…real 2m34.196suser 0m0.581ssys 2m31.947s real 6m28.243suser 5m1.576ssys 0m25.536s

[perfuser@exalyticsX4]$ du -s -k ./PSB_copy PSB.tar.gz25541388 ./PSB_copy1103864 PSB.tar.gz

[perfuser@exalyticsX4]$ time gunzip PSB.tar.gz real 4m0.662suser 1m22.172ssys 0m53.272s

[perfuser@exalyticsX4]$ time tar cvf /dev/shm/PSB.tar ./PSB_copy; time pbzip2 /dev/shm/PSB.tar; time cp /dev/shm/PSB.tar.bz2 .…

real 0m27.247suser 0m0.364ssys 0m26.797s

real 1m34.761suser 181m6.148ssys 0m24.144s real 0m1.292suser 0m0.014ssys 0m1.274s

[perfuser@exalyticsX4]$ du -s -k ./PSB_copy PSB.tar.bz2 25541388 ./PSB_copy556420 PSB.tar.bz2

[perfuser@exalyticsX4]$ time pbzip2 -d /dev/shm/PSB.tar.bz2 real 0m38.687suser 14m9.004ssys 1m21.186s

Standard backup, 25GB app – 542 seconds

Proposed backup, 25GB app – 123 seconds

5.7X

4.1X

6.3X

Page 21: Oracle Exalytics In-Memory Machine Performance Benchmarks and Best Practices Lionel Hsu Consulting Member of Technical Staff Nikolai Potapov Consulting

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |

Agenda

Exalytics evolution

Essbase benchmarks

Best practices: tuning tips and tools

Essbase

BI

Summary

1

2

3

4

Page 22: Oracle Exalytics In-Memory Machine Performance Benchmarks and Best Practices Lionel Hsu Consulting Member of Technical Staff Nikolai Potapov Consulting

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |

Timesten DB

Exalytics BIEE Diagnostic Map

-ttStatus: check active connections

Exalytics

Data Warehouse

Webcat

OBIPS (sawserver)

OBIS (nqserver)

WLS (bi_server)(analytics app)

Repository

Browser/Mobile

Javahost(Chart Engine)

-OBIS query logging to check slow queries-BI Admintool: Active Sessions

-Jconsole: Threads - Heap Usage & GC usage - Thread dumps to check number of active threads

-WLS console: Monitoring -JVM heap usage - ActiveThreadsCount - Queue Length - JDBC connections - # of analytics sessions - # of bisecurity sessions - thread dump

- OBIPS perfmon: active sessions/thread pool sizes…etc.

-EM: to monitor OBIEE domain

Page 23: Oracle Exalytics In-Memory Machine Performance Benchmarks and Best Practices Lionel Hsu Consulting Member of Technical Staff Nikolai Potapov Consulting

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |

Timesten DB

Exalytics BIEE Performance Tuning Map • DB connection•Log Level•Slow queries

Exalytics

Data Warehouse

Webcat

OBIPS (sawserver)

OBIS (nqserver)

WLS (bi_server)(analytics app)

Repository

Browser/Mobile

Javahost(Chart Engine)

•Hardware Acceleration flag•Logical SQLs/Physical SQLs•Init block•Server Thread pool• DB Gateway connection pool•OBIS Cache•Temp/log folder location•Log level

•JVM Heap Size for Trellis Charts•Thread Pool size•Javahost Clustering•Temp/log folder location

•JVM Heap size•Analytics app ConnectionPool •Analytics app session timeout•WLS LDAP connection pool•Log folder location•WLS Min/Max threads

•Hardware Acceleration flag•Chart Thread Pool•OBI PS Cache (catalog/account)•Session timeouts•Cursor Wait Time•Memory Quota checking•Temp/log folder location

Page 24: Oracle Exalytics In-Memory Machine Performance Benchmarks and Best Practices Lionel Hsu Consulting Member of Technical Staff Nikolai Potapov Consulting

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |

ExalyticsSet Proper Log Level• Set the default log level to ‘Error’

• Log levels should be the first place to check while debugging performance issues

Page 25: Oracle Exalytics In-Memory Machine Performance Benchmarks and Best Practices Lionel Hsu Consulting Member of Technical Staff Nikolai Potapov Consulting

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |

Exalytics

Move temp files and log files to ramdisk for better scalability– OBIPS

cd $BI_HOME/instances/instance1/tmp/OracleBIPresentationServicesComponentmv coreapplication_obips1 coreapplication_obips1.localDiskln -s /dev/shm/coreapplication_obips1 .\

– Javahostmkdir /dev/shm/coreapplication_obijh1cd $BI_HOME/instances/instance1/tmp/OracleBIJavaHostComponentmv coreapplication_obijh1 coreapplication_obijh1.localDiskln -s /dev/shm/coreapplication_obijh1 .\

– OBIS tmp foldermkdir /dev/shm/coreapplication_obis1cd $BI_HOME/instances/instance1/tmp/OracleBIServerComponentmv coreapplication_obis1 coreapplication_obis1.origln -s /dev/shm/coreapplication_obis1 .

– OBIS Sorting/Working directory: since temp folder is pointing the RAMDISK from above settings, use default for sorting/working directory so it will be using RAMDISK as well

WORK_DIRECTORY_PATHS = ""; (blank means using default path)

Move tmp/log files to RAMDisks

Page 26: Oracle Exalytics In-Memory Machine Performance Benchmarks and Best Practices Lionel Hsu Consulting Member of Technical Staff Nikolai Potapov Consulting

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |

Exalytics

• OBIS file buffer size– Increase file buffer size to 128KB to ensure good write to disk performance of sorting and cache Population

• CACHE_FILE_BUFFER_SIZE = 128KB; (in NQConfig.INI)

OBIS I/O buffer size

Page 27: Oracle Exalytics In-Memory Machine Performance Benchmarks and Best Practices Lionel Hsu Consulting Member of Technical Staff Nikolai Potapov Consulting

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |

Exalytics

– OBIPS Caches (instanceconfig.xml)• Leveraging large RAM to bump up OBI PS Caching

<Cache> <CatalogXml> <MaxAgeMinutes> : 240

<Cache> <CatalogXml> <MaxLastAccessedSeconds>: 14400

<Cache><Query><MaxEntries>: 5000

<Cache><Query><AbsoluteMaxEntries>: 20000

<Cache><Query><CruiseEntries> : 3000

<Cache><Query><ForceLRU> : true

<Cache><Accounts><CleanupFrequencyMinutes>:14400

<Cache><AccountIndex><CleanupFrequencyMinutes>:14400

<Cache><CatalogAttributes> <CleanupFrequencyMinutes>:14400

– OBIS Cache settings (NQSConfig.INI)[CACHE]

ENABLE = YES;

MAX_CACHE_ENTRIES = 5000;

MAX_CACHE_ENTRY_SIZE = 256 MB;

MAX_ROWS_PER_CACHE_ENTRY = 100000 ; // Too many rows in cache can slow down performance

[SERVER]

INIT_BLOCK_CACHE_ENTRIES = 5000;

Caching

Page 28: Oracle Exalytics In-Memory Machine Performance Benchmarks and Best Practices Lionel Hsu Consulting Member of Technical Staff Nikolai Potapov Consulting

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |

Exalytics• OBIPS Chart Threadpool size(instanceconfig.xml)

– OBIPS has a thread pool for Javahosts. Its size needs to be the total number of threads allowed in all Javahosts.

– For example, there are two Javahost instances . Each has 300 threads defined in its own configuration file, and then the Max size for OBIPS threadpool size needs to be 600 (300 + 300).

<ThreadPoolDefaults>

<ChartThreadPool>

<MinThreads>300</MinThreads>

<MaxThreads>600</MaxThreads>

<MaxQueue>4096</MaxQueue>

</ChartThreadPool>

<Query>

<MaxThreads>1024</MaxThreads>

</Query>

</ThreadPoolDefaults>

• Javahost Threadpool size (config.xml)

$BI_HOME/instances/instance1/config/OracleBIJavaHostComponent/coreapplication_obijh1/config.xml

<JobManager>

<MinThreads>300</MinThreads>

<MaxThreads>300</MaxThreads>

<MaxPendingJobs>300</MaxPendingJobs>

</JobManager>

• OBIS Threadpool (in NQConfig.INI)

SERVER_THREAD_RANGE = 500-1000;

DB_GATEWAY_THREAD_RANGE = 500-1000;

AGGREGATE_THREAD_POOL_SIZE = 5;

Configure Sufficient Threadpool Size

Page 29: Oracle Exalytics In-Memory Machine Performance Benchmarks and Best Practices Lionel Hsu Consulting Member of Technical Staff Nikolai Potapov Consulting

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |

Exalytics

• When the load is high, WLS default work manager might not be spawning enough threads for the load.

• We can increase the “Minimum Threads Constraint” & “Maximum Threads Constraint” for the ‘default’ work manager.

Configure WLS threads constraints

Page 30: Oracle Exalytics In-Memory Machine Performance Benchmarks and Best Practices Lionel Hsu Consulting Member of Technical Staff Nikolai Potapov Consulting

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |

Exalytics

• OBIS RPD– AdminTool: Connection Pool -> General Tab -> Maximum connections

• WLS: LDAP connection pool size• in WLS, needs to meet the concurrent login rate

Configure enough connection pool size

Page 31: Oracle Exalytics In-Memory Machine Performance Benchmarks and Best Practices Lionel Hsu Consulting Member of Technical Staff Nikolai Potapov Consulting

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |

Exalytics

• WLS /analytics plug-in Max connections– bridgeconfig.properties ($BI_HOME/user_projects/domains/bifoundation_domain/config/fmwconfig/biinstances/coreapplication/bridgeconfig.properties)

• oracle.bi.presentation.sawconnect.ConnectionPool.MaxConnections=512

• TimesTen max connection– Make sure you have enough Semaphore

/sbin/sysctl -w kernel.sem=2048 (to set the value of kernel.sem)

/sbin/sysctl kernel.sem (to check the value of kernel.sem)

kernel.sem = 2048 64000 256 64

– In the Timesten server side DSN entry• For example

[crm_dwh2_adm]

Driver=/home/tt/TimesTen/dev/lib/libtten.so

DatabaseCharacterSet=US7ASCII

...

Connections=300

...

• OBIS Session LIMIT (NQSConfig.INI)[SERVER]

MAX_SESSION_LIMIT = 10000 ;

Configure Max connections/Sessions

Page 32: Oracle Exalytics In-Memory Machine Performance Benchmarks and Best Practices Lionel Hsu Consulting Member of Technical Staff Nikolai Potapov Consulting

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |

Exalytics

• WLS Analytics plug-in session timeout• Set the ‘Session timeout(in seconds) to control the timeout of the sessions in Analytics plug-in in WLS

• The timeout should be in sync with the session timeout in OBI PS.

• OBIPS Session timeout<ClientSessionExpireMinutes>5</ClientSessionExpireMinutes>

Check Session Timeouts

Page 33: Oracle Exalytics In-Memory Machine Performance Benchmarks and Best Practices Lionel Hsu Consulting Member of Technical Staff Nikolai Potapov Consulting

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |

Exalytics

• OBIPS Memory Quota Checking– Set the following shell variable for OBIPS in opmn.xml

SIEBEL_MEMORY_THREADALLOC_QUOTA=8388608 (e.g to set thread quota to 8MB)

– UI will throw an error when a user’s request consumes more than this memory

• For very large TimesTen Datastore (>256GB), The following Linux kernel and Timesten settings need to be changed. Please refer to Exalytics Best Practices doc for details.

– kernel.shmmax/kernel.shmall/kernel.sem

– /proc/sys/vm/nr_hugepages

– /proc/meminfo: Hugepagesize

– ttendaemon.options: linuxLargePageAlignment

Exalytics Memory Tuning

Page 34: Oracle Exalytics In-Memory Machine Performance Benchmarks and Best Practices Lionel Hsu Consulting Member of Technical Staff Nikolai Potapov Consulting

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |

Exalytics

• WLS BI Managed Server Heap sizes• This needs to be modified based on the number of concurrent sessions and BIP reports.

SERVER_MEM_ARGS="-Xms256m -Xmx2048m -XX:MaxPermSize=512m“ (setDomainEnv.sh)export SERVER_MEM_ARGS

• Javahost heap sizes (opmn.xml)– For scenarios with Trellis charts , increase JVM heap size to 8GB (-xmx8192M )

<ias-component id="coreapplication_obijh1"><data id="start-args" value="-server -Xms2048M -Xmx8192M … "

JVM heap size

Page 35: Oracle Exalytics In-Memory Machine Performance Benchmarks and Best Practices Lionel Hsu Consulting Member of Technical Staff Nikolai Potapov Consulting

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |

Exalytics

• Clustering Javahosts can help scalability– Use EM to increase the number of instances of Javahost

Javahost clustering

Page 36: Oracle Exalytics In-Memory Machine Performance Benchmarks and Best Practices Lionel Hsu Consulting Member of Technical Staff Nikolai Potapov Consulting

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |

Exalytics

• Repository init-blocks : Called once during server startup and refreshed after the refresh interval as needed

• Session init-blocks: called for each new session; slow SQL can slow down login

• Session init-blocks should be minimized and lazily loaded (deferred)– Previously it was not possible to defer row-wise

init-blocks ; restriction has been lifted in 11.1.1.6

• Init-blocks should be associated with it’s separate connection pool to reduce contention– Ensure enough connections are available

OBIS - Init Blocks

Page 37: Oracle Exalytics In-Memory Machine Performance Benchmarks and Best Practices Lionel Hsu Consulting Member of Technical Staff Nikolai Potapov Consulting

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |

• Currently BI does not support issuing SQLs with bind variables to the database – May result in high parse time in the database specially for very complex Queries

• Work around: Add inititalization code in connection setting to change session parameter for cursor_sharing (Oracle only)– In the Execute on connect section, click New and add: alter session set cursor_sharing='FORCE';

– In the Execute on disconnect section, click New and add: alter session set cursor_sharing='EXACT';

OBIS using Bind VariablesExalytics

Page 38: Oracle Exalytics In-Memory Machine Performance Benchmarks and Best Practices Lionel Hsu Consulting Member of Technical Staff Nikolai Potapov Consulting

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |

Exalytics

• OBIS Query Loglevel– Loglevel 2 provided the logical query , physical query

and the response times• It has reasonable low overhead in low to moderately busy

system and can be kept at level 2 in production • Keep the log file in RAMDISK to reduce the IO overhead

– Needs rpd access to change • Work-around: Have a session init-block defined and read the

value from a DB table

OBIS Log Analysis for Performance Tuning

Page 39: Oracle Exalytics In-Memory Machine Performance Benchmarks and Best Practices Lionel Hsu Consulting Member of Technical Staff Nikolai Potapov Consulting

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |

Exalytics

• Inspecting query log– Provides the physical datasource name

[username:ADMINISTRATOR] --- Sending query to database named FSCM_OLTP (id: <<966402>>), connection pool …

– Query Status Query Status: Successful Completion

– Row Count from the database [username:Administrator] --- Execution Node: <<27109>> DbGateway Exchange, Close Row Count = 1, Row Width = 10 bytes

– Physical SQL response time[username:ADMINISTRATOR] ----- Physical query response time 5 (seconds), id SQLBypass Gateway

• Mapping a slow Query in database to a logical query in BI (11.1.1.6+)– BI physical query will add a hash as a comment - “/* 2c16620a */ select T2005.Country as c…”

– BI Query log will have the corresponding hash-------------------- SQL Request, logical request hash: fdc49e9cSending query to database named FSCM_OLTP (id: <<1712462>>), connection pool named Connection Pool, logical request hash fdc49e9c,

physical request hash 2c16620a: [[

OBIS Log Analysis for Performance Tuning (cont’d)

Page 40: Oracle Exalytics In-Memory Machine Performance Benchmarks and Best Practices Lionel Hsu Consulting Member of Technical Staff Nikolai Potapov Consulting

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |

Exalytics

• WLS Console– # of sessions (/analytics) in WLS– Queue Length: are things slowing down in the backend?

• EM (Enterprise manager)– Sessions, requests/s…etc for WLS, OBIPS, OBIS & Javahost

• OBIPS perfmon page– http://<hostname>:<port>/analytics/saw.dll?perfmon

• BIEE AdminTool– Manage-Sessions: # of sessions, current request and session variables

Monitoring

Page 41: Oracle Exalytics In-Memory Machine Performance Benchmarks and Best Practices Lionel Hsu Consulting Member of Technical Staff Nikolai Potapov Consulting

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |

ExalyticsMonitoring – WLS Console

Page 42: Oracle Exalytics In-Memory Machine Performance Benchmarks and Best Practices Lionel Hsu Consulting Member of Technical Staff Nikolai Potapov Consulting

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |

ExalyticsMonitoring – WLS Console - Queue Length

Page 43: Oracle Exalytics In-Memory Machine Performance Benchmarks and Best Practices Lionel Hsu Consulting Member of Technical Staff Nikolai Potapov Consulting

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |

ExalyticsMonitoring – EM (Enterprise manager)

Page 44: Oracle Exalytics In-Memory Machine Performance Benchmarks and Best Practices Lionel Hsu Consulting Member of Technical Staff Nikolai Potapov Consulting

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |

ExalyticsMonitoring - OBIPS perfmon page /analytics/saw.dll?perfmon

Page 45: Oracle Exalytics In-Memory Machine Performance Benchmarks and Best Practices Lionel Hsu Consulting Member of Technical Staff Nikolai Potapov Consulting

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |

ExalyticsMonitoring – AdminTool - Sessions

Page 46: Oracle Exalytics In-Memory Machine Performance Benchmarks and Best Practices Lionel Hsu Consulting Member of Technical Staff Nikolai Potapov Consulting

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |

Exalytics

• OBIPS Cursor Wait Time– There are two parameters that control how long OBI PS should wait before replying ‘refreshing page’ to the

browser. NewCursorWaitSeconds is the time to wait on the initial callback from the UI for a query to finish. OldCursor is for subsequent call backs for the query to finish.

– It is helpful to increase the ‘NewCursorWaitSecons’ for performance load testing, so the load test scripts won’t error out because of not seeing the expected results<Cursors> <NewCursorWaitSeconds>1000</NewCursorWaitSeconds> <OldCursorWaitSeconds> 1000</OldCursorWaitSeconds></Cursors>

Configuration changes for Load testing scripts

Page 47: Oracle Exalytics In-Memory Machine Performance Benchmarks and Best Practices Lionel Hsu Consulting Member of Technical Staff Nikolai Potapov Consulting

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |

Agenda

Exalytics evolution

Essbase benchmarks

Best practices: tuning tips and tools

Summary

1

2

3

4

Page 48: Oracle Exalytics In-Memory Machine Performance Benchmarks and Best Practices Lionel Hsu Consulting Member of Technical Staff Nikolai Potapov Consulting

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |

Summary• Oracle Exalytics integrated best-of-breed software and hardware to

deliver high throughput and response time.• Oracle Exalytics is to reduce cost and increase productivity and

performance of your organization.• Need more info on Exalytics?

Check out https://www.oracle.com/engineered-systems/exalytics/index.html

• Related Session: [CON8052] Oracle Business Intelligence Enterprise Edition Performance and RPD Optimization Techniques Thursday 10:45 am - Moscone West 3022

• Thank you!

Page 49: Oracle Exalytics In-Memory Machine Performance Benchmarks and Best Practices Lionel Hsu Consulting Member of Technical Staff Nikolai Potapov Consulting

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |

OBIEE Performance and RPD Optimization techniquesDeb BhatacharjeeSr. Director

Anupam BordiaConsulting Member of Technical Staff

Nathan ReynoldsArchitect

PSRSeptember, 2014

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | Oracle Confidential – Internal

Page 50: Oracle Exalytics In-Memory Machine Performance Benchmarks and Best Practices Lionel Hsu Consulting Member of Technical Staff Nikolai Potapov Consulting

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |

Safe Harbor StatementThe preceding is intended to outline our general product direction. It is intended for information purposes only, and may not be incorporated into any contract. It is not a commitment to deliver any material, code, or functionality, and should not be relied upon in making purchasing decisions. The development, release, and timing of any features or functionality described for Oracle’s products remains at the sole discretion of Oracle.

Page 51: Oracle Exalytics In-Memory Machine Performance Benchmarks and Best Practices Lionel Hsu Consulting Member of Technical Staff Nikolai Potapov Consulting

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |

Page 52: Oracle Exalytics In-Memory Machine Performance Benchmarks and Best Practices Lionel Hsu Consulting Member of Technical Staff Nikolai Potapov Consulting