Performance Engineering Basics

Download as ppt, pdf, or txt
Download as ppt, pdf, or txt
You are on page 1of 16

Performance Engineering:

Better performance, Happy customers


Product Strategy

Developing a s/w product with two strategies


 Business Strategy
 Gain segment market leadership
 Early to market
 High Quality offering
 Generate ROI
 Increase profitability
 Improved customer loyalty
 Product Management Strategy
 Design, implement, test and deploy the product to
 Meet explicitly stated functional requirements
 Meet non-specified but innate expectations from the software
Performance Pitfalls

 Potential to cause all the work to be scrapped


 Huge negative consequences of performance
failure
 Damaged customer relations
 Loss of business
 Loss of credibility
 Cost of delay & additional resources
 Performance defect identified during maintenance
stage could cost 50 to 100 times more to fix as it
would have cost during early stage of development
lifecycle.
What is Performance
Engineering ?
 Process by which software is tested and tuned
with the intent of realizing the required performance
 Performance categories
 Speed
 Scalability
 Stability

 Performance engineering helps IN


 Increase revenue by ensuring optimum system performance
 Optimize provisioning & utilization of infrastructure
 Improve availability by resolving performance & scalability
 Reduce maintenance costs
 Avoid system failure requiring scrapping & writing off development effort
 Self impressive facts about the release
Elements of Performance
Engineering
 Performance testing & sizing
 Performance Regression Test, System Load testing, System Benchmarking
 Performance tuning and optimization
 Optimal tuning guidelines for production setup – JVM, Pool, logs, App/Web server, DB,
OS, etc.
 Effectively applying skills, technologies and tools
 System diagnostics
 End to end profiling, recommendations for overall system scalability
 Capacity planning
 Determine expected production capacity, Facilitate capacity management
 Performance Centric development
 Client side performance engineering
Performance Engineering Strategy
Challenges in Performance Testing

 Performance engineering awareness


 Right tool selection
 Scripting expertise
 Physical/practical resource limitations on number of
human users
 Appropriate Hardware setup
 Governing the behavior of simulated users according
to a set of policies
 Consistent, repeatable actions
 Accurate measurement of response times
 Generation and comprehensive analysis of results
Features in an Ideal Load Test Tool

 Support for popular protocols viz. Http, Https,


AJAX, WAP, SMTP etc…
 Integrated resource monitoring
 Simple and intuitive User interfaces and
wizards
 Easy to use parameterization features
 Real time progress of the test runs
 Support for high concurrency of virtual users
 Sophisticated and comprehensive reporting
and analysis capabilities
Tools & Utilities

 Performance Testing
 LoadRunner, SandStorm, Silk Performer, Jmeter, Grinder, Webload, OpenSTA,

 Web Servers
 Apache
 IIS

 Application Servers
 Apache Tomcat
 Jboss
 Weblogic
 Websphere
 Databases
 Oracle
 MS SQL Server
 My SQL
 PostgreSQL
 System Profiling
 HP Deep diagnostics, Jprobe, DynaTrace, Jprofiler, YourKit, InfraRed
 GCViewer, HttpSniffer,
SandStorm

 Impetus’ Automated Performance Testing tool


 Technology: Core Java, Swing, Networking,
Multithreading, PostgreSQL, XML based test
scripts, Object serialization
 Features comparable to Industry standard load
testing tools
 Load test – Web based & Client server applications
 Low cost and quick customization
SandStorm Components

 Recorder Record user actions in the form of scripts


 Command Launcher Creation and execution of virtual users
 Controller Assign the recorded scripts to virtual users and
govern execution of scripts based on
certain policies
 Analyzer Collect and Analyze the results of executed
scripts
Case I
 Background
 Recognized market and thought leader in Workforce management
 Delivers Innovative solutions and solve complex workforce-related
issues.
 30 million users per day in 30,000+ hiring locations.
 500+ Fortune 1000 clients includes: the largest consumer goods,
automotive, telecom, customer service, payroll services.

 Challenges
 90% of customers use Applet version of the application
 Support for load testing of the applets and java objects
 Affordable proof of concepts for pre sales activities
Accomplishments

 Defined Performance testing strategy and process


 Helped Client by setting up Test Lab with isolated LAN
( Completely free from other corporate network activity). Setup
included
 9 servers: Dual 3.2 Ghz, PentiuApp/Web servers: IIS, Jboss, Weblogic, Apache
 Database servers: Oracle9, 10 & 11, SQL server2005 & 2008,
 m 4, 2 GB RAM, 500 GB HDD
 15 + Agent machines for launching Virtual users

 SandStorm support for load testing of applets and java objects


 Tested application with 5k concurrency levels
 Dedicated support for deployment and customization
 Improved customer satisfaction because of onsite benchmarking
Case 2

 Background
 Leading telecommunication solutions and services
provider
 Instant messaging solutions for mobile devices
 Innovative solutions for mobile and internet industry

 Challenges
 Load test product based on OMA IMPS mobile protocol
 Simulate concurrency of 25k online users
Accomplishments

 Created performance test scripts using


SandStorm
 Generate a load of 25k online users with 10%
concurrency and each one sending messages
to other
 Created plug-in to simulate connection
between device user and server to simulate
production
Experience SandStorm

 Download SandStorm evaluation version


 http://www.impetus.com/plabs/plabs_sandstorm_eval
 Stand alone packaged product
 Usage based or Perpetual Licensing
 For any support/ clarifications contact :
[email protected]

You might also like