Performance Engineering: Performance Engineering: Better performance, Happy customersBetter 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]