Performance Engineering Basics

16
Performance Engineering: Performance Engineering: Better performance, Happy customers Better performance, Happy customers

description

With every passing day, organizations are becoming more and more mindful about the performance of their Software Products. However, most of them still on look-out for the basics of Performance Engineering. According to a recent study by Gartner, fixing performance defects near the end of the development cycle costs 50 to 100 times more than the cost required for fixing it during the early phase of development. Hence, if a product suffers from serious performance issues it can be completely scrapped. Performance Engineering ensures that your application is performing as per expectations and the software is tested and tuned to meet specified or even the unstated performance requirements. We present you with a webcast on Performance Engineering Basics that would walk you through the elements and process of performance engineering, and also offers a methodical process for the same. It also offers details on a load testing tool, and describes how best to utilize it. Visit http: http://www.impetus.com/featured_webcast?eventid=10 to listen to the entire webcast (20 minutes). OR To post any queries on Performance Engineering, write to us at [email protected] For case studies and articles on performance engineering please visit: http://www.impetus.com/plabs/casestudies?case_study=&pLabsClustering.pdf=

Transcript of Performance Engineering Basics

Page 1: Performance Engineering Basics

Performance Engineering: Performance Engineering: Better performance, Happy customersBetter performance, Happy customers

Page 2: Performance Engineering Basics

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

Page 3: Performance Engineering Basics

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.

Page 4: Performance Engineering Basics

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

Page 5: Performance Engineering Basics

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

Page 6: Performance Engineering Basics

Performance Engineering Strategy

Page 7: Performance Engineering Basics

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

Page 8: Performance Engineering Basics

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

Page 9: Performance Engineering Basics

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,

Page 10: Performance Engineering Basics

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

Page 11: Performance Engineering Basics

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

Page 12: Performance Engineering Basics

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

Page 13: Performance Engineering Basics

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

Page 14: Performance Engineering Basics

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

Page 15: Performance Engineering Basics

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

Page 16: Performance Engineering Basics

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]