imaginea performance engineering

14
1 For Private Viewing Only. Not for Public and Unsolicited Distribution. Copyright © 2009, IMAGINEA a business unit of Pramati Technologies Pvt. Ltd. Imaginea Performance Engineering Practice Methodology & Success Stories

Upload: rajaneeshchandra

Post on 22-Apr-2015

331 views

Category:

Business


0 download

DESCRIPTION

 

TRANSCRIPT

Page 1: Imaginea Performance Engineering

1 For Private Viewing Only. Not for Public and Unsolicited Distribution. Copyright © 2009, IMAGINEA a business unit of Pramati Technologies Pvt. Ltd.

Imaginea Performance Engineering Practice

Methodology & Success Stories

Page 2: Imaginea Performance Engineering

Performance Characterization

Production System Analysis

Detailed Architecture Review

Detailed code review analysis

Performance Tuning

Database architecture, Query Analysis and entity relationships

Performance Engineering Methodology

Page 3: Imaginea Performance Engineering

Performance goals and objectives

Metrics and performance criteria

Expected peak load

Throughput

Response time

No of users

Define and capture work load

Workload objectives

Base Line characterization

Analyze statistics

Repeat baseline with optimized application

Test Tool identification

Grinder, webload, loadrunner, funkload,

rational tester etc

Testing for performance

Identify the most common use cases and

load levels

Development of performance test suites

Test Tool identification

Test data generation

Runs tests and analyze data

Performance Characterization

Page 4: Imaginea Performance Engineering

Understand Deployment requirements

Fault tolerance and Redundancy

Understand transactional requirements

Caching and Clustering

Load Balancing and state management

Deployment configuration

Caching and clustering issues?

Configurable parameters like no. of

thread, socket buffer sizes

Statistics collection (Memory analysis ,

garbage collection etc)

Estimate the Capacity

Size the applications

Technology stack

Key components along the response path

Web Server, Middleware, Database

Server diagnostics

Memory, gc analysis

Using Java profilers

Run time statistics

Latencies

Concurrency and threading issues

Database Service times

SQL queries

Connection pools

Database cache

Production System Analysis

Page 5: Imaginea Performance Engineering

Requirements

No of users, response time, throughput

Capacity and sizing requirements

Understand transactional requirements

Load characterization

Run tests and analyze data

Top down approach

• OS, VM, AppServer, Application, Network, DB

Choose profiling tools

Evaluation of deployment parameters

Clustering

Load balancing etc

Architecture review

Major modules, interfaces

Inter and intra product message exchanges

Transactional analysis

Data path and its size

Architectural design patterns and their

applicability

Failure (severance) scenarios

Recovery scenarios(Recoverability)

Data integrity and fault tolerance

Object instances and scalability

Memory requirements

Optimum performance through load

characterization

Architecture Review

Page 6: Imaginea Performance Engineering

Analysis

Standard coding practices

Design patterns

Class design and Code reuse

Thread safety and deadlocks

Unit test suites

Continuous integration

Peer code review process

Modularity

Intra and Inter product message exchanges

Understand Code

Different modules

Layers and Interfaces

Dependency and boundary tests

UI interaction

Caching and Clustering

Session management and state

Clustering and session state

Detailed Code Review

Page 7: Imaginea Performance Engineering

Understand the problem

Generic tuning

Specific operations slow

Slow on high volume of load

Tunable components

Processors, memory, I/O, Network BW

OS parameters, VM Parameters

Schema Design, Table indexes

No of connections, DB cache

Performance Criteria and Test environment

Repeatable test load, with baseline and

target

Tools for generating load

Run tests and analyze data

Performance improvement

Repeatable test load, with baseline and

target

Generating load

Run tests and analyze data, interpret

data

Repeat performance tests

Tune OS and Network

Buffer sizes, paging, no of threads, disk

reads and writes

Tune JVM

GC times, Memory, I/O

Tune Database

Queries, indexes, partitioning

Tune Application

Sessions, application cache, data paths

Performance Tuning

Page 8: Imaginea Performance Engineering

Understand the Entity model

Understand domain model, relationships,

attributes

Replication requirements

BI requirements

Analysis

Optimum normalization of the schema

SQL query analysis, joins (cost analysis)

Caching

Index sizes and its effect on writes and reads

Sharding, Partitioning and application design

Statistics collection and analysis

Scaling the Db Reads

Replication with slave servers

Slave

Scaling the DB writes

Sharading: Partition data multiple

servers

Managing queries across shrads

Data redundancy and backups

Slave DB for backup

Database Analysis

Page 9: Imaginea Performance Engineering

Success Stories

Page 10: Imaginea Performance Engineering

Worlds leading social media sharing widget developed on the Java platform and deployed on EC2 for extremely high scalability and 24x7x365 availability. Here are some key characteristics

2.79 billion impressions served

Auto scale up or down

Configures load balancer automatically

New instance to share load after configuration

Instant deployment

Monitor health, average load, requests etc

Uptime for more than a year

24% reads and 76% writes on master

3 slaves and 100% reads

SocialTwist: 59 mn queries & 6 bn buttons served

12

15

16

S3

EC2

11

14

13

Balance

Loader

System

Admin

Remote Shell

Cacti

Page 11: Imaginea Performance Engineering

Sun Microsystems sought Imaginea’s expertise to develop and test the Mypicks application that had to be designed to scale for more than 3mn users

User DB is sharded (with hot standby)

Look up table for sharding

10MB cache size for mil users

Sharding logic in Node chooser

Friends DB replicated instead of MapReduce

Attaching Web Servers to shard reduces no of

connections to DB

Base AMI types (LB, Web, Database)

Join Cluster, publish stats, join monitor system

Instances on demand using AMI’s

Instance join the cluster

MyPicks Beijing: Facebook Gaming Application

LB WEB

WEB

M

M

M

M

S

S

S

S

S

Shard Lookup DB

User Shard 1

User Shard 2

Friends DB

S3

Result Processor

Page 12: Imaginea Performance Engineering

Short introduction: Imaginea executed a performance engg optimization project for a contract mgmt platform (Tech stack). The engagement involved

Performance Improvement of 30%

Redundant DB calls

Optimize and batch SQL queries

Caching the Metadata

Performance Test Suite

Tested up to 1500 users

Web Load Test tool

Designed framework for script reuse and schedule load

Monitoring hit ratio, response times, heap, gc times, cpu, disk, network, database queries

Performance Improvement for a contract service management platform

Database

Core Services Containers Applications

JVM

Operating Systems/ Hardware

App1

App2

App3

Web

EJB

JMS

Resource

Naming

Transaction

CPU MEMORY RAM NETWORK

JVM Memory GC Threading

Models I/O

DB

Tuning

LB

Apache/IIS

plugin

Cluster

Page 13: Imaginea Performance Engineering

Imaginea delivered a 3X improvement in response time and throughput for a leading enterprise SaaS application vendor.

The vendor expected load on the application to increase significantly. App is based on Java/J2EE middleware technology stack.

Imaginea executed an engagement that involved a systematic process of analysis, quantification, recommendations & remedy as described below

Understand current implementation - Functionality, architecture, modules & frameworks

Identify representative test workloads and setup test environments

Characterization & analysis exercise

Analyze scalability – User scaling & hardware scaling

Scalability metrics (concurrent users, throughput, response)

Improving response times & throughput

Identify code & design bottlenecks suggest fix(s)

Scalability reports for the Application (with varying user loads)

Performance Engineering for a SaaS application

Page 14: Imaginea Performance Engineering

Thank You!

14 For Private Viewing Only. Not for Public and Unsolicited Distribution. Copyright © 2009, IMAGINEA a business unit of Pramati Technologies Pvt. Ltd.

Contact: [email protected]