240 likes | 717 Views
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
E N D
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 • http://www.xense.co.uk/xense_profiler_start.htm
Overview • Key Architectural Changes in D6 • DFC and DMCL • DFC Tracing in D6 • Performance Tuning with DFC trace
Key Architectural Changes in D6 • ‘Native’ DMCL replaced with Java DMCL • Documentum Foundation Services (DFS) • Write-caching in BOCS • Loads more …
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 DFC Tracing in D6
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_filter Target a specific user • dfc.tracing.mode compact 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’
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!
DFC Trace example 7011.547 0.000 N/A [http-8080-Processor25] com.documentum.com.DfClientX@18c022c.getQuery() ==> com.documentum.fc.client.IDfQuery@1dd1a31 7011.547 0.000 N/A [http-8080-Processor25] com.documentum.fc.client.DfQuery@1dd1a31.setDQL("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>
DFC Trace Example (cont.) 7011.547 1.325 <dmadmin> [http-8080-Processor25] com.documentum.fc.client.DfQuery@1dd1a31.execute(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>
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
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
Xense DFC Trace Analysis – Example 1 Top 5 DFC Calls
Xense DFC Trace Analysis – Example 2 Top 5 DFC Calls
Example 2 - continued Top 5 Queries
Xense DFC Trace Analysis – Example 3 Call Profile
Xense DFC Trace Analysis – Example 4 Call Profile
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!
Summary • Understand the Key Changes • DMCL trace is dead • Performance tuning with DFC trace • Profile your performance • Performance Analysis Tools and Performance Patterns
Presentations will be available on the Momentum Monaco Website www.momentumeurope.com