23
Inside EMC Documentum Performance Tuning D6

Inside EMC Documentum

  • Upload
    charis

  • View
    143

  • Download
    7

Embed Size (px)

DESCRIPTION

Inside EMC Documentum. Performance Tuning D6. Who am I?. Independent Consultant 8+ years working with Documentum Specialise in performance analysis and tuning ‘Inside Documentum’ blog http://robineast.wordpress.com Xense Profiler – Documentum Performance Profiler - PowerPoint PPT Presentation

Citation preview

Page 1: Inside EMC Documentum

Inside EMC Documentum

Performance Tuning D6

Page 2: Inside EMC Documentum

© 2007 EMC Corporation

Who am I?

> Independent Consultant

> 8+ years working with Documentum

> Specialise in performance analysis and tuning

> ‘Inside Documentum’ blog– http://robineast.wordpress.com

> Xense Profiler – Documentum Performance Profiler– http://www.xense.co.uk/xense_profiler_start.htm

Page 3: Inside EMC Documentum

© 2007 EMC Corporation

Overview

> Key Architectural Changes in D6

> DFC and DMCL

> DFC Tracing in D6

> Performance Tuning with DFC trace

Page 4: Inside EMC Documentum

© 2007 EMC Corporation

Key Architectural Changes in D6

> ‘Native’ DMCL replaced with Java DMCL

> Documentum Foundation Services (DFS)

> Write-caching in BOCS

> Loads more …

Page 5: Inside EMC Documentum

© 2007 EMC Corporation

A Short History of the DMCL (1)

Content ServerC++

VB client

Workspace

RightSitedocbasic

Browser

Database

Filestores

RPC

DMCL

DMCL

DMCL

Page 6: Inside EMC Documentum

© 2007 EMC Corporation

A Short History of the DMCL (2)

Content ServerC++

Java Client

Desktop Client

Webtop/WDK

Browser

Database

Filestores

RPC

DMCLC++

DMCLC++

DMCLC++

DFCJava

DFCJava

DFCJava

Page 7: Inside EMC Documentum

© 2007 EMC Corporation

D6 - DFC

DFCJava

Content ServerC++

Database

Filestores

RPCDFC Client Application

RPCJava

Page 8: Inside EMC Documentum

© 2007 EMC Corporation

A Short History of the DMCL (3)

Content ServerC++

Java

DFS

WDK/Webtop

Browser

Database

Filestores

RPC

DFCJava

DFCJava

DFCJava

Page 9: Inside EMC Documentum

© 2007 EMC Corporation

DFC Tracing in D6

DMCL Tracing

> Simple Invocation

> ‘Flat’ structure

> Analysis tools available

> Problems with tracing in Multi-Threaded environments

DFC Trace

> Many different parameters

> ‘Stack’ structure

> Few tools available

> Improved tracing facilities in Multi-Threaded environments

Page 10: Inside EMC Documentum

© 2007 EMC Corporation

Trace Invocation - Parameters

> DMCL had 2 parameters (trace_level and trace_file)> DFC has 24 parameters

– dfc.tracing.enable=true turns on tracing and is the only required parameter

– dfc.tracing.user_name_filterTarget a specific user

– dfc.tracing.modecompact or standard

– dfc.tracing.include_rpc_count and dfc.tracing.include_rpcs– dfc.tracing.dir (tracing location)

use different directories for different applications

> Other tracing parameters are listed in the ‘Content Server Administration Guide’

Page 11: Inside EMC Documentum

© 2007 EMC Corporation

Trace Invocation – How-To

> Enter DFC tracing parameters into dfc.properties file– DFC runtime will pick up the new parameters

automatically

> ‘Old’ methods– DA API– WDK api tester– http://<host>:<port>/<app>/wdk/traceDMCL.jsp

> Resource Management in DA

> Don’t forget to switch off tracing afterwards!

Page 12: Inside EMC Documentum

© 2007 EMC Corporation

DFC Trace example

7011.547 0.000 N/A [http-8080-Processor25] [email protected]() ==> com.documentum.fc.client.IDfQuery@1dd1a31

7011.547 0.000 N/A [http-8080-Processor25] [email protected]("select state_name,type_override_id from dm_policy where r_object_id = '0000000000000000' ") ==> <void>

7011.547 0.000 <dmadmin> [http-8080-Processor25] com.documentum.fc.client.DfAdminSessionManager@1d66aa9.getSession("d6test2") ==> com.documentum.fc.client.IDfSession@e29127

7011.547 0.000 <dmadmin> [http-8080-Processor25] com.documentum.fc.client.impl.session.SessionHandle@e29127.getSessionId() ==> "s1"

7011.547 0.000 <dmadmin> [http-8080-Processor25] com.documentum.fc.client.impl.session.SessionManager@1d66aa9.release(com.documentum.fc.client.impl.session.StrongSessionHandle@e29127) ==> <void>

Page 13: Inside EMC Documentum

© 2007 EMC Corporation

DFC Trace Example (cont.)

7011.547 1.325 <dmadmin> [http-8080-Processor25] [email protected](com.documentum.fc.client.impl.session.StrongSessionHandle@6f14d6,0) ==> com.documentum.fc.client.IDfCollection@a7a434

7012.872 0.000 <dmadmin> [http-8080-Processor25] com.documentum.fc.client.impl.collection.CollectionHandle@a7a434.next() ==> false

7012.872 0.000 <dmadmin> [http-8080-Processor25] com.documentum.fc.client.impl.collection.CollectionHandle@a7a434.close() ==> <void>

Page 14: Inside EMC Documentum

© 2007 EMC Corporation

Measuring Performance

When you can measure what you are speaking about, and express it in numbers, you know something about it; but when you cannot measure it, when you cannot express it in numbers, your knowledge is of a meager and unsatisfactory kind; it may be the beginning of knowledge, but you have scarcely, in your thoughts, advanced to the state of science.

Lord Kelvin

Page 15: Inside EMC Documentum

© 2007 EMC Corporation

Analysing DFC Trace

> Even ‘simple’ tracing scenarios usually produce large trace files

> Analysis tools needed

> EMC Documentum provided tools

> Xense DFC analysis scripts– http://www.xense.co.uk/dfc_profiler_start.htm

> Build you own

Page 16: Inside EMC Documentum

© 2007 EMC Corporation

Xense DFC Trace Analysis – Example 1

Top 5 DFC Calls

DurationSecs

DFC Call Call Details

67.790 [email protected] select distinct r_object_id, media_type, object_name, r_object_type, publication_name, description, language_translated, document_id from bus_docs where any location in ('GHR014:', 'GHR014', 'GHR000') and r_current_state='2'

67.650 [email protected] select distinct r_object_id, media_type, object_name, r_object_type, publication_name, description, language_translated, document_id from bus_docs where any location in ('GHR014:', 'GHR014', 'GHR014:16', 'GHR000') and r_current_state='2'

67.618 [email protected] select distinct r_object_id, media_type, object_name, r_object_type, publication_name, description, language_translated, document_id from bus_docs where any location in ('GHR014:', 'GHR014:44', 'GHR014:5', 'GHR014:6', 'GHR000') and r_current_state='2'

67.603 [email protected] select distinct r_object_id, media_type, object_name, r_object_type, publication_name, description, language_translated, document_id from bus_docs where any location in ('GHR014:', 'GHR014', 'GHR014:16', 'GHR014:26') and r_current_state='2'

67.368 [email protected] select distinct r_object_id, media_type, object_name, r_object_type, publication_name, description, language_translated, document_id from bus_docs where any location in ('GHR014:', 'GHR014:5', 'GHR014:6', 'GHR000') and r_current_state='2'

Page 17: Inside EMC Documentum

© 2007 EMC Corporation

Xense DFC Trace Analysis – Example 2

Top 5 DFC Calls

DurationSecs

DFC Call Call Details

0.273 com.documentum.fc.client.impl.session.SessionHandle@14b9eeb.getFolderByPath()

/dmadmin

0.234 com.documentum.fc.client.DfAdminSessionManager@1d66aa9.getSession()

0.184 [email protected]()

select r_object_id, r_version_label, i_position from dm_sysobject (all) where i_chronicle_id (‘0903303480001116’)

0.116 com.documentum.fc.client.impl.collection.CollectionHandle@1a13047.next()

select r_object_id, r_version_label, i_position from dm_sysobject (all) where i_chronicle_id (‘0903303480001116’)

0.107 com.documentum.fc.client.impl.collection.CollectionHandle@1a13047.next()

select r_object_id, r_version_label, i_position from dm_sysobject (all) where i_chronicle_id (‘0903303480001116’)

Page 18: Inside EMC Documentum

© 2007 EMC Corporation

Example 2 - continued

Top 5 Queries

DurationSecs

Rows Query

61.233 30,123 select r_object_id, r_version_label, i_position from dm_sysobject (all) where i_chronicle_id = ‘0903303480001116’

0.234 22 select r_object_id, object_name, title, keywords, authors, r_object_type from dm_document where folder(‘/Business/Florida/Key2’)

0.184 1 select child_id from dm_relation where parent_id = ‘0903303480001116’ and child_id in (select r_object_id from custom_templates where templ_type = ‘contract_docs’)

0.116 2 select r_object_id, r_version_label, i_position from custom_templates where i_chronicle_id = ‘0903303480000c9e’

0.107 1 select r_folder_path from dm_folder where folder(‘/Business/Florida/Key2’, descend)

Page 19: Inside EMC Documentum

© 2007 EMC Corporation

Xense DFC Trace Analysis – Example 3

Call Profile

Total Duration

FrequencyAverage Duration

DFC Call

7.033 1502 0.005 com.documentum.fc.client.DfQuery.execute

5.015 500 0.010 com.documentum.fc.client.DfPersistentObject.fetch

3.123 1502 0.002 com.documentum.fc.client.impl.collection.CollectionHandle.next

0.236 21 0.011 com.documentum.fc.client.impl.session.SessionHandle.getObject

0.172 1 0.172 com.documentum.fc.client.impl.session.SessionHandle.getFolderByPath

0.109 12 0.009 com.documentum.fc.client.impl.session.SessionHandle.getTypeDescription

0.079 129 0.001 com.documentum.fc.client.impl.session.SessionHandle.getType

0.079 205 0.000 com.documentum.fc.client.impl.collection.CollectionHandle.next

0.047 1983 0.000 com.documentum.fc.client.DfAdminSessionManager.getSession

0.031 1 0.031 com.documentum.fc.client.DfSysObject.getFormat

0.016 12 0.001 com.documentum.fc.client.impl.validation.Validator.getValueAssistance

0.015 1984 0.000 com.documentum.fc.client.impl.session.SessionManager.release

0.015 94 0.000 com.documentum.fc.client.impl.session.SessionHandle.getLoginUserName

0.000 3989 n/a All Other Functions

Page 20: Inside EMC Documentum

© 2007 EMC Corporation

Xense DFC Trace Analysis – Example 4

Call Profile

Total Duration

FrequencyAverage Duration

DFC Call

1.290 1 1.290 com.documentum.operations.DfDeleteOperation.execute

0.128 1 0.128 com.documentum.fc.client.DfClient.newSessionManager

0.125 32 0.004 com.documentum.fc.client.DfSessionManager.getSession

0.102 1 0.102 com.documentum.com.DfClientX.getDeleteOperation

0.092 20 0.001 com.documentum.operations.DfDeleteOperation.add

0.055 23 0.000 com.documentum.fc.client.DfSession.getObject

0.000 2123 n/a All Other Functions

Page 21: Inside EMC Documentum

© 2007 EMC Corporation

Performance Patterns

> Pattern 1: single long-running DFC calls– Tuning to target these calls

> Pattern 2: long-running query– Not just IDfQuery.execute!– Tune the query

> Pattern 3: high frequency of DFC calls– Reduce or eliminate repeated DFC calls or queries

> Pattern 4: look elsewhere!

Page 22: Inside EMC Documentum

© 2007 EMC Corporation

Summary

> Understand the Key Changes

> DMCL trace is dead

> Performance tuning with DFC trace

> Profile your performance

> Performance Analysis Tools and Performance Patterns

Page 23: Inside EMC Documentum

Presentations will be available on the Momentum Monaco Website

www.momentumeurope.com