System Performance Engineering
Methodology (SPEM)
by Ankit Rathi
http://ankitrathi.co.nr © 2013
Agenda
• SPEM Background
• What is SPEM?
• Why SPEM is required?
• Types of SPEM
• How SPEM is implemented?
• Who are SPEM stakeholders?
• Performance Benchmarking Tools
http://ankitrathi.co.nr © 2013
SPEM Background
• Overnight batch was breaching SLA on regular
basis
• Unable to identify the bottleneck
• Analyzed the whole batch
• Completed critical path analysis
• Identified candidates for tuning
• Based on trail & error
• No structured approach
http://ankitrathi.co.nr © 2013
What is SPEM?
• Step-by-step framework
• To benchmark the performance
• To identify the current bottlenecks
• To analyze performance trend
• To proactively anticipate performance issues
http://ankitrathi.co.nr © 2013
Some Basics
• Bottleneck
• Throughput
• Response Time
• Scalability
• Performance Baseline
http://ankitrathi.co.nr © 2013
Why SPEM is required?
• More & more functionality day by day
• Increasing workload on the systems (more
data, more users)
• Inability to identify root-cause & fix
• No logically structured way to deal with
performance issues
http://ankitrathi.co.nr © 2013
Performance Baselines
• Application statistics (transaction volumes,
response time)
• Database statistics (DB time, Wait time)
• Operating System statistics (CPU utilization)
• Disk I/O statistics (disk usage, read/write)
• Network statistics (data packets, sockets,
interfaces)
http://ankitrathi.co.nr © 2013
What are the types of SPEM?
• Proactive methodology: analysis, design,
development and test phases
• Reactive methodology: identifying the primary
bottleneck
http://ankitrathi.co.nr © 2013
How SPEM is implemented?
Proactive Approach
• Simple database & application design
• Instrumenting system performance measures
• Avoiding common oversights in system
architecture
• Caching frequently accessed data
• Workload testing, modeling and
implementation
• Proactive performance stats capture
http://ankitrathi.co.nr © 2013
How SPEM is implemented?
Reactive Approach
• Get and accurate description of the problem
• Gather application/database/OS/Network stats
• Check for common pitfalls
• Analyze the stats gather, theorize the cause of
the problem
• Propose the remedial actions, then implement
them
• Repeat any steps, as required, until performance
goals are met
http://ankitrathi.co.nr © 2013
Who are SPEM Stakeholders?
• Business Analysts (gather/analyse
performance requirements)
• System Architects/Designers (design for
performance)
• Developers (code for performance)
• Testers (test for performance)
• Analysts (tune for performance)
http://ankitrathi.co.nr © 2013
Performance Benchmarking Tools
• Tools in Oracle: AWR/Statspack, Explain Plan,
SQL Trace/TKPROF
• Tools in Java: JRockit, JProfiler
• Tools in .NET: PerfView, GlowCode
• Tools for OS: GlowCode (Windows), gProf
(UNIX/Linux)
http://ankitrathi.co.nr © 2013

SPEM

  • 1.
    System Performance Engineering Methodology(SPEM) by Ankit Rathi http://ankitrathi.co.nr © 2013
  • 2.
    Agenda • SPEM Background •What is SPEM? • Why SPEM is required? • Types of SPEM • How SPEM is implemented? • Who are SPEM stakeholders? • Performance Benchmarking Tools http://ankitrathi.co.nr © 2013
  • 3.
    SPEM Background • Overnightbatch was breaching SLA on regular basis • Unable to identify the bottleneck • Analyzed the whole batch • Completed critical path analysis • Identified candidates for tuning • Based on trail & error • No structured approach http://ankitrathi.co.nr © 2013
  • 4.
    What is SPEM? •Step-by-step framework • To benchmark the performance • To identify the current bottlenecks • To analyze performance trend • To proactively anticipate performance issues http://ankitrathi.co.nr © 2013
  • 5.
    Some Basics • Bottleneck •Throughput • Response Time • Scalability • Performance Baseline http://ankitrathi.co.nr © 2013
  • 6.
    Why SPEM isrequired? • More & more functionality day by day • Increasing workload on the systems (more data, more users) • Inability to identify root-cause & fix • No logically structured way to deal with performance issues http://ankitrathi.co.nr © 2013
  • 7.
    Performance Baselines • Applicationstatistics (transaction volumes, response time) • Database statistics (DB time, Wait time) • Operating System statistics (CPU utilization) • Disk I/O statistics (disk usage, read/write) • Network statistics (data packets, sockets, interfaces) http://ankitrathi.co.nr © 2013
  • 8.
    What are thetypes of SPEM? • Proactive methodology: analysis, design, development and test phases • Reactive methodology: identifying the primary bottleneck http://ankitrathi.co.nr © 2013
  • 9.
    How SPEM isimplemented? Proactive Approach • Simple database & application design • Instrumenting system performance measures • Avoiding common oversights in system architecture • Caching frequently accessed data • Workload testing, modeling and implementation • Proactive performance stats capture http://ankitrathi.co.nr © 2013
  • 10.
    How SPEM isimplemented? Reactive Approach • Get and accurate description of the problem • Gather application/database/OS/Network stats • Check for common pitfalls • Analyze the stats gather, theorize the cause of the problem • Propose the remedial actions, then implement them • Repeat any steps, as required, until performance goals are met http://ankitrathi.co.nr © 2013
  • 11.
    Who are SPEMStakeholders? • Business Analysts (gather/analyse performance requirements) • System Architects/Designers (design for performance) • Developers (code for performance) • Testers (test for performance) • Analysts (tune for performance) http://ankitrathi.co.nr © 2013
  • 12.
    Performance Benchmarking Tools •Tools in Oracle: AWR/Statspack, Explain Plan, SQL Trace/TKPROF • Tools in Java: JRockit, JProfiler • Tools in .NET: PerfView, GlowCode • Tools for OS: GlowCode (Windows), gProf (UNIX/Linux) http://ankitrathi.co.nr © 2013