37
BÂLE BERNE BRUGG DUSSELDORF FRANCFORT S.M. FRIBOURG E. BR. GENÈVE HAMBOURG COPENHAGUE LAUSANNE MUNICH STUTTGART VIENNE ZURICH Exadata x5 - 2 POC with OVM Jacques Kostic Senior Consultant IMS Lausanne

PoC Oracle Exadata - Retour d'expérience

Embed Size (px)

Citation preview

Page 1: PoC Oracle Exadata - Retour d'expérience

BÂLE BERNE BRUGG DUSSELDORF FRANCFORT S.M. FRIBOURG E.BR. GENÈVE

HAMBOURG COPENHAGUE LAUSANNE MUNICH STUTTGART VIENNE ZURICH

Exadata x5-2 POC with OVM

Jacques KosticSenior Consultant IMS Lausanne

Page 2: PoC Oracle Exadata - Retour d'expérience

About me…

Senior Consultant, Trivadis AG, Lausanne-CH

Experience

• Oracle DBA since more than 25 years, initially with version 4

• High Availability and Backup & Recovery

• SQL and Instance Performance & Tuning

• License Audit and Consolidation

Teaching Courses at Trivadis

• Oracle Grid Infrastructure & RAC

• Oracle Data Guard

• Oracle SQL Performance & Tuning

• Oracle Instance Performance & Tuning

Page 3: PoC Oracle Exadata - Retour d'expérience

Agenda

1. Introduction

2. Current Oracle Architecture

3. Alternatives with Exadata X5-2

1. Without OVM

2. With OVM

4. POC execution and results

5. Proposed architecture

6. Five years projection plan

7. Q&A

Page 4: PoC Oracle Exadata - Retour d'expérience

Introduction

Page 5: PoC Oracle Exadata - Retour d'expérience

Customer Overview

Medium size customer from insurance sector

Several databases with different workload types

Lack of storage and resources with licensing constraints

Consolidation opportunities with the new Exadata X5-2

Very short time to run the POC (5 days!)

The name will not be disclosed but the most relevant characteristics to

the project are reported below.Customer

Environment

Page 6: PoC Oracle Exadata - Retour d'expérience

Current Oracle architecture

Page 7: PoC Oracle Exadata - Retour d'expérience

Current Oracle architecture

IBM AIX P7 PowerVM technologies, 1 LPAR per instance on uncapped CPU POOL

– 20 production Oracle instances

– 60 dev, qa, int instances

– ~25TB PROD/DEV/QA/INT

– 80 LPAR

– Max 700GB per database, generally OLTP workload except for Documentum

– Good SQL optimization for OLTP databases

Licensed 20 CPU Enterprise Edition with Diagnostic and Tuning packs

Uncapped CPU POOL is problematic for licensing compliance aspects

However, CPU POOL usage charts are not showing pics above 12 CPU

Page 8: PoC Oracle Exadata - Retour d'expérience

Alternatives with Exadata X5-2

Page 9: PoC Oracle Exadata - Retour d'expérience

Exadata X5-2: Without OVM

Pros.

Use the entire machine capacity

Less servers to manage

Pay-as-you-grow approach (COD) for software licensing is another way in which Exadata helps to align costs with

business growth

– Minimum 40% of the cores must be activated

– All additional options must follow the same allocation

Cons.

Isolation between databases and environments

License optimization

Page 10: PoC Oracle Exadata - Retour d'expérience

Exadata X5-2: With OVM

Pros.

Environment and database isolation

Hard partitioning facilitate licensing optimization

– Minimum 40% of the total cores must be licensed for Enterprise Edition product

– For other options, it’s linked to CPU allocation for each VM

– One core per database node dedicated to dom0 (out of software licensing)

Very flexible, dynamic vCPU allocation

Allow IO resource management between all database from all virtual machines.

Db_unique_name must be unique across the entire Exadata

Cons.

Might appear more complex to manage

New feature on Exadata X5-2 (backported to X4)

– Strong investment from Oracle on the technology representing the key solution for global

consolidation projects

Page 11: PoC Oracle Exadata - Retour d'expérience

Deployment

Create configuration (clusters) with Oracle Exadata Deployment Assistant (OEDA)

Configuration tool

– OEDA Configuration tool version Mar 2015 v15.084 - Patch 20645646

Prepare system

– IP allocation, customer requirements

Deploy configuration using OEDA Configuration tool

Exadata X5-2: OracleVM overview on Exadata

Page 12: PoC Oracle Exadata - Retour d'expérience

Exadata X5-2: Cluster deployment example

Page 13: PoC Oracle Exadata - Retour d'expérience

POC Execution and Result

Page 14: PoC Oracle Exadata - Retour d'expérience

POC Execution and Result

Environment

Exadata 1/8

OVM Configuration

Two-node cluster with 26 vCPUs per node and 90 GB of RAM

1 database of 300GB with 30 GB of SGA (OLTP)

1 database of 700GB with 30 GB of SGA (Documentum)

Page 15: PoC Oracle Exadata - Retour d'expérience

POC Execution and Result: OLTP batch processing

Job P7 with DS8000 Exadata *Gain

Generate account validation

Preparation 2m 31s 45s 336%

Execution (28536 accounts) 2h 29m 41s 1h 17m 26s 192%

Summary generation

Execution (28536 accounts) 3h 19m 29s 2h 10m 4s 154%

Reporting

Preparation 1m 16s 48s 158%

Execution 13h 38m 45s 10h 05m 10s 135%

Account validation batch on the OLTP database with 26 threads in parallel

*Test done with 26 vCPUs and 2 vCPUs, no differences on the execution time

Page 16: PoC Oracle Exadata - Retour d'expérience

POC Execution and Result: OLTP batch processing

AWR Extractions

Nothing to report!

Page 17: PoC Oracle Exadata - Retour d'expérience

POC Execution and Result: Documentum

select all doc.r_object_id, doc.a_content_type

from VFK_TST_DCTM.vfk_document_sp doc LEFT OUTER JOIN

VFK_TST_DCTM.dmi_0301d65580000206_sp ON

doc.r_object_id = dmi_0301d65580000206_sp.r_object_id

where

((doc.title!='office rendition error')

and (dmi_0301d65580000206_sp.c_status!='en traitement')

and doc.a_content_type in

('msw8', 'msw12', 'excel8book', 'excel12book', 'ppt12', 'ppt8', 'msg')

and not ( exists (select * from VFK_TST_DCTM.dmr_content_sp dmr_content

where (dmr_content.r_object_id in

(select r_object_id from VFK_TST_DCTM.dmr_content_r

where parent_id=doc.r_object_id)

and (dmr_content.full_format='pdf')

)

)

)

) and (doc.i_has_folder = 1 and doc.i_is_deleted = 0);

Query

Identify significant query

Execution time between 486 sec and 12,276 sec (average 1,226 sec)

Page 18: PoC Oracle Exadata - Retour d'expérience

POC Execution and Result: Documentum

Execution on production system:----------------------------------------------------------------------------------

| Id | Operation | Name | E-Rows |

----------------------------------------------------------------------------------

| 0 | SELECT STATEMENT | | |

| 1 | NESTED LOOPS | | 499 |

| 2 | NESTED LOOPS | | 494 |

|* 3 | HASH JOIN ANTI | | 494 |

| 4 | INLIST ITERATOR | | |

|* 5 | TABLE ACCESS BY INDEX ROWID| DM_SYSOBJECT_S | 49392 |

|* 6 | INDEX RANGE SCAN | DM_SYSOBJECT_S_INDX20 | 49392 |

| 7 | VIEW | VW_SQ_1 | 31M|

| 8 | NESTED LOOPS | | 31M|

| 9 | TABLE ACCESS FULL | DMR_CONTENT_R | 69M|

|* 10 | INDEX RANGE SCAN | DMR_CONTENT_S_INDX01 | 1 |

|* 11 | INDEX UNIQUE SCAN | D_1F01D65580000924 | 1 |

|* 12 | INDEX RANGE SCAN | DMI_0301D65580000206_S_INDX06 | 1 |

----------------------------------------------------------------------------------

2h30min!

Page 19: PoC Oracle Exadata - Retour d'expérience

POC Execution and Result: Documentum

Execution on Exadata:------------------------------------------------------------------------------

| Id | Operation | Name | E-Rows |

------------------------------------------------------------------------------

| 0 | SELECT STATEMENT | | |

| 1 | NESTED LOOPS | | |

| 2 | NESTED LOOPS | | 841 |

| 3 | NESTED LOOPS | | 831 |

|* 4 | HASH JOIN ANTI | | 831 |

| 5 | INLIST ITERATOR | | |

|* 6 | TABLE ACCESS BY INDEX ROWID | DM_SYSOBJECT_S | 83083 |

|* 7 | INDEX RANGE SCAN | DM_SYSOBJECT_S_INDX20 | 83084 |

| 8 | VIEW | VW_SQ_1 | 30M|

|* 9 | HASH JOIN | | 30M|

|* 10 | INDEX STORAGE FAST FULL SCAN| DMR_CONTENT_S_INDX01 | 27M|

| 11 | TABLE ACCESS STORAGE FULL | DMR_CONTENT_R | 67M|

|* 12 | INDEX UNIQUE SCAN | D_1F01D65580000924 | 1 |

|* 13 | INDEX UNIQUE SCAN | D_1F01D65580000908 | 1 |

|* 14 | TABLE ACCESS BY INDEX ROWID | DMI_0301D65580000206_S | 1 |

1,21min!

Page 20: PoC Oracle Exadata - Retour d'expérience

POC Execution and Result: Documentum

Different execution time

2h30 min versus 1min 21sec

Different execution plan

Missing histograms in production on column PARENT_ID for table DMR_CONTENT_R

Page 21: PoC Oracle Exadata - Retour d'expérience

POC Execution and Result: Documentum

Collect missing histograms:

On Exadata(just to have the elapse time)

Begin

dbms_stats.gather_table_stats (

ownname => 'VFK_TST_DCTM',

TABNAME => 'DMR_CONTENT_R',

METHOD_OPT => 'for all columns size skewonly');

End;

Elapsed: 00:01:49.905

En Prod

Begin

dbms_stats.gather_table_stats (

ownname => 'VFK_TST_DCTM',

TABNAME => 'DMR_CONTENT_R',

METHOD_OPT => 'for all columns size skewonly');

End;

Elapsed: 00:10:02.628

Factor of 5 on

the same

dataset!

Page 22: PoC Oracle Exadata - Retour d'expérience

POC Execution and Result: Documentum

After having collected missing statistics, here is the result in Prod:------------------------------------------------------------------------------

| Id | Operation | Name | E-Rows |

------------------------------------------------------------------------------

| 0 | SELECT STATEMENT | | |

| 1 | NESTED LOOPS | | |

| 2 | NESTED LOOPS | | 841 |

| 3 | NESTED LOOPS | | 831 |

|* 4 | HASH JOIN ANTI | | 831 |

| 5 | INLIST ITERATOR | | |

|* 6 | TABLE ACCESS BY INDEX ROWID | DM_SYSOBJECT_S | 83083 |

|* 7 | INDEX RANGE SCAN | DM_SYSOBJECT_S_INDX20 | 83084 |

| 8 | VIEW | VW_SQ_1 | 30M|

|* 9 | HASH JOIN | | 30M|

|* 10 | INDEX FAST FULL SCAN | DMR_CONTENT_S_INDX01 | 27M|

| 11 | TABLE ACCESS FULL | DMR_CONTENT_R | 67M|

|* 12 | INDEX UNIQUE SCAN | D_1F01D65580000924 | 1 |

|* 13 | INDEX UNIQUE SCAN | D_1F01D65580000908 | 1 |

|* 14 | TABLE ACCESS BY INDEX ROWID | DMI_0301D65580000206_S | 1 |

12,57min!

Page 23: PoC Oracle Exadata - Retour d'expérience

POC Execution and Result: Documentum

Same execution plan on Exadata for effective comparison:optimizer_index_caching=0;

optimizer_index_cost_adj=100;

PROD 12 min 57 sec

Exadata 1 min 21 sec

------------------------------------------------------------------------------

| Id | Operation | Name | E-Rows |

------------------------------------------------------------------------------

| 0 | SELECT STATEMENT | | |

| 1 | NESTED LOOPS | | |

| 2 | NESTED LOOPS | | 841 |

| 3 | NESTED LOOPS | | 831 |

|* 4 | HASH JOIN ANTI | | 831 |

| 5 | INLIST ITERATOR | | |

|* 6 | TABLE ACCESS BY INDEX ROWID | DM_SYSOBJECT_S | 83083 |

|* 7 | INDEX RANGE SCAN | DM_SYSOBJECT_S_INDX20 | 83084 |

| 8 | VIEW | VW_SQ_1 | 30M|

|* 9 | HASH JOIN | | 30M|

|* 10 | INDEX STORAGE FAST FULL SCAN| DMR_CONTENT_S_INDX01 | 27M|

| 11 | TABLE ACCESS STORAGE FULL | DMR_CONTENT_R | 67M|

|* 12 | INDEX UNIQUE SCAN | D_1F01D65580000924 | 1 |

|* 13 | INDEX UNIQUE SCAN | D_1F01D65580000908 | 1 |

|* 14 | TABLE ACCESS BY INDEX ROWID | DMI_0301D65580000206_S | 1 |

------------------------------------------------------------------------------

Default optimizer settings

Factor 9 on the

same dataset

with the same

execution plan

Major improvement due to smart scan usage (storage clause)

Page 24: PoC Oracle Exadata - Retour d'expérience

POC Execution and Result: Documentum

Change optimizer settingsoptimizer_index_caching=95;

optimizer_index_cost_adj=5;

PROD 4 sec

Exadata 1 sec

Less gain as smart scan is not used

------------------------------------------------------------------------------------

| Id | Operation | Name | E-Rows |

------------------------------------------------------------------------------------

| 0 | SELECT STATEMENT | | |

| 1 | NESTED LOOPS | | 4203 |

| 2 | NESTED LOOPS | | 4154 |

| 3 | INLIST ITERATOR | | |

|* 4 | TABLE ACCESS BY INDEX ROWID | DM_SYSOBJECT_S | 4154 |

|* 5 | INDEX RANGE SCAN | DM_SYSOBJECT_S_INDX20 | 4154 |

| 6 | NESTED LOOPS | | 1 |

| 7 | TABLE ACCESS BY INDEX ROWID| DMR_CONTENT_R | 2 |

|* 8 | INDEX RANGE SCAN | D_1F01D65580000005 | 2 |

|* 9 | INDEX RANGE SCAN | DMR_CONTENT_S_INDX01 | 1 |

|* 10 | INDEX UNIQUE SCAN | D_1F01D65580000924 | 1 |

|* 11 | INDEX RANGE SCAN | DMI_0301D65580000206_S_INDX04 | 1 |

------------------------------------------------------------------------------------

Factor 4 on the

same dataset

with the same

execution plan

Required by Documentum

Page 25: PoC Oracle Exadata - Retour d'expérience

We were requested to remove one disk!OEM Alarm

Host=sgexaadm02vm01.customer.ch

Target type=Cluster ASM

Target name=+ASM_cluster-clu1

Categories=Availability

Message=2 disks are offline.

Severity=Critical

Event report

ed time=Apr 15, 2015 10:17:05 AM CEST

Disk re-insert (rebuild)INST_ID GROUP_NUMBER Operation PASS State R-Power A-Power W-Done E-Est

---------- ------------ ---------- --------- ----- -------- ------ -------- -------

2 2 REBAL RESYNC RUN 50 50 31,413 13

2 2 REBAL RESILVER WAIT 50 50 0 0

2 2 REBAL REBALANCE WAIT 50 50 0 0

2 2 REBAL COMPACT WAIT 50 50 0 0

1 2 REBAL RESYNC WAIT 50

1 2 REBAL RESILVER WAIT 50

1 2 REBAL REBALANCE WAIT 50

1 2 REBAL COMPACT WAIT 50

POC Execution and Result: Hardware tests

Page 26: PoC Oracle Exadata - Retour d'expérience

We were requested to unplug power cable of one storage cell!

OEM AlarmHost=sgexaadm02vm01.customer.ch

Target type=Cluster ASM

Target name=+ASM_cluster-clu1

Categories=Availability

Message=Failure Group DATAC1.SGEXACELADM03 is unavailable.

Severity=Critical

Event reported time=Apr 15, 2015 5:00:25 PM CEST

Host=sgexaadm02vm01.customer.ch

Target type=Cluster ASM

Target name=+ASM_cluster-clu1

Categories=Availability

Message=Failure Group RECOC1.SGEXACELADM03 is unavailable.

Severity=Critical

Event reported time=Apr 15, 2015 5:00:25 PM CEST

Host=sgexaadm02vm01.customer.ch

Target type=Cluster ASM

Target name=+ASM_cluster-clu1

Categories=Availability

Message=12 disks are offline.

Severity=Critical

Event reported time=Apr 15, 2015 5:02:05 PM CEST

After plugging back

power cable, rebuild

starts few minutes

after…

POC Execution and Result: Hardware tests

Page 27: PoC Oracle Exadata - Retour d'expérience

POC Execution and Result: Conclusions

OLTP Batch– Significant gain even after huge vCPU reduction

– No I/O wait events

Documentum– Major improvement when smart scan is used

– Better system stability even with default optimizer settings not allays aligned with

vendor requirements

– Performance increase with a factor from 4 to 9 depending if smart scan is use or not

Hardware tests– Storage protection tested and verified as requested!

Page 28: PoC Oracle Exadata - Retour d'expérience

Proposed Architecture

Page 29: PoC Oracle Exadata - Retour d'expérience

Exadata X5-2 based architecture

Customer constraints

Isolation– Secure maintenance operation

– Control and adjust resource allocation

Continuity– No high availability required, Data Guard protection is enough

– Full capacity usage, distribute production database between the two data centers

Performance– Increase performances in particular for Documentum

– New application will come soon

Licensing– Optimize and control licensing

Propose a five years projection plan to absorb future growth

Page 30: PoC Oracle Exadata - Retour d'expérience

DBServer1 DBServer2

PROD1PROD2

PROD3 PROD5PROD6

PROD7

QAS1QAS2

INT2

DEV1DEV2

DRP1

IO Resource Manager: Category, Inter-Database, intra-Database (db_unique_name unique on all VClusters)

INT1

DRP1

QAS3QAS4

INT4

DEV3DEV4

DRP3

INT3

DRP4

10 vCPUs10 vCPUs

4 vCPUs 4 vCPUs 4 vCPUs4 vCPUs

2 vCPUs2 vCPUs

vClu2

vClu1 PRD

QA/DEVvClu3

vClu4INT

DRP

data

fra

data

fra

StorageServer1 StorageServer2 StorageServer3HD1 HD2 HD3 HD4 HD5 HD6 HD1 HD2 HD3 HD4 HD5 HD6 HD1 HD2 HD3 HD4 HD5 HD6

data

fra

data

fra

Exadata X5-2 based architecture with OVM

Page 31: PoC Oracle Exadata - Retour d'expérience

In total:

40 vCPUs for production databases

16 vCPUs for DEV/QA databases

16 vCPUs for INT databases

8 vCPUs for DRP databases

No additional licenses to purchase

Fix every VMs to max 14 vCPUs (to adjust power on demand)

Exadata X5-2 OVM Oracle infrastructure

Environment Exadata Storage Required Cores/Server Max Cores/Server Total Cores Threads CPU to License

PRD,INT,QAS,DEV,DRP I 30 TB 18 10 20 40 10

PRD,INT,QAS,DEV,DRP II 30 TB 18 10 20 40 10

Total 60 TB 25 TB 40 80 20

CPU, storage and licensing

Exadata X5-2 based architecture with OVM

Page 32: PoC Oracle Exadata - Retour d'expérience

Dynamic host cpu reconfiguration using: xm vcpu-set

Dynamic oracle CPU_COUNT adjustment as of Oracle Oracle 12c

– Dynamic resource management update

Adjust power on demand: MAX 14 vCPUs per VM

PROD

DBServer1

QA DEV DR

14 vCPUs

6 vCPUs

2 vCPUs

mini

Exadata X5-2 based architecture with OVM

Page 33: PoC Oracle Exadata - Retour d'expérience

5 years projection plan

Page 34: PoC Oracle Exadata - Retour d'expérience

Five Years Projection Plan

The five years projection plan is based on customer estimation with:

Up to 15% of storage increase per year

and

Up to 5% of processing increase per year

Solution: Exadata 1/8 de Rack with all Cores activated

Page 35: PoC Oracle Exadata - Retour d'expérience

In total:

72 vCPUs for production databases

24 vCPUs for DEV/QA databases

24 vCPUs for INT databases

16 vCPUs for DRP databases

Buy 14 additional EE + Options CPU licenses to fit the needs

Fix every VMs to max 28 vCPUs (to adjust power on demand)

Five Years Projection Plan

Exadata X5-2 OVM Oracle infrastructure

Environment Exadata Storage RequiredCores/Server

MaxCores/Server Total Cores Threads CPU to License

PRD,INT,QAS,DEV,DRP I 32 TB 50 TB 18 17 (18-1) 34 68 17

PRD,INT,QAS,DEV,DRP II 32 TB 50 TB 18 17 (18-1) 34 68 17

Total 64 TB 50 TB 68 136 34

CPU, storage and licensing

.

Page 36: PoC Oracle Exadata - Retour d'expérience

Conclusions

The proposed solution responds perfectly to customer requirements on all areas

Environment Isolation

Performance

Capacity usage and workload adjustments

Disaster recovery

Licensing optimization

Fulfil five year projection plan requirements

Page 37: PoC Oracle Exadata - Retour d'expérience

Questions…Jacques Kostic

Senior Consultant IMS Lausanne

Tél. +79 909 72 63

[email protected]