SlideShare uma empresa Scribd logo
1 de 56
Baixar para ler offline
LOAD & PERFORMANCE TESTING FOR J2EE
Alexandru Ersenie
Senior Load & Performance Test Engineer
Edict eGaming GmbH, Hamburg
alexandru.ersenie@googlemail.com
http://www.alexandru-ersenie.com
TESTING, MONITORING, ANALYSING AND REPORTING USING OPEN SOURCE TOOLS
07/25/12 Alexandru Ersenie - Load & Performance Testing for J2EE 2
AGENDA
SAMPLING/PROFILING
3 TIER TUNING
VIRTUALIZATION
TESTING IN THE CLOUD
SECURITY
LOGGING
BEST PRACTICES
NETWORKING
........
PERFORMANCE BASICS
Scope
Metrics
Factors on Performance
Performance Reports
Generating Load
I
MONITORING
Monitoring types
CPU Monitoring
Other Performance Monitors
Reactive Monitoring/Reporting
II
JVM GC and Heap Monitoring
TOOLS
Monitoring
Reporting
Analysis
III
07/25/12 Alexandru Ersenie - Load & Performance Testing for J2EE 3
PERFORMANCE BASICS
1.1
07/25/12 Alexandru Ersenie - Load & Performance Testing for J2EE 4
1.1 DEFINITION AND SCOPE
PERFORMANCE
Short response time for a given piece of
work
High throughput (rate of processing work)
Low utilization of computing resources
High availability of the computing system
or application
Efficient usage of
hardware resources;
Storage
Continue to operate
despite errors
SCALABILITY
Handle growing amount
of work;
Ability to enlarge
to accommodate more
work
EFFICIENCY RELIABILITY
Recover after
failure;
Mean time
between failures
ROBUSTNESS
Non functional
requirements
07/25/12 Alexandru Ersenie - Load & Performance Testing for J2EE 5
1.1 REAL WORLD NUMBERS
1 second of slower performance on pages could cost Amazon $1.6 billion in sales each year
25% of users will leave a site if a page takes more than 4 seconds to load.
http://performance-testing.org/performance-testing-statistics
http://en.wikipedia.org/wiki/BigTable
RESPONSE TIMES
Facebook serves more than 2 million ‘Like’ buttons per second (June 2010).
Facebook held a clear lead in total page views during March 2011, recording about 85
billion. This was more than three times as many as number two Google, which had about
25.6 billion
THROUGHPUT
Google uses a compressed, high performance, proprietary data storage file system, (...)
designed to scale into the petabyte range (1000 terabytes)
EFFICIENCY
07/25/12 Alexandru Ersenie - Load & Performance Testing for J2EE 6
METRICS
1.2
07/25/12 Alexandru Ersenie - Load & Performance Testing for J2EE 7
1.2 METRICS
OPTIMISTIC
SLA are already defined
Concurrent users
Transactions / Second
Response Times
Storage
Concurrent users
10 000 logged in users
50 000 visitors
Transactions / Second
1 000 business transactions / second
4 000 web requests / second
Response Times
Landing page total load time less than
8 seconds for 70 % of the users
Transaction Response time less than
2 seconds for 90 % of all transactions
Storage
Maximum 100 bytes
per transaction
TEST TO ACCHIEVE DEFINED SOFTWARE LEVEL AGREEMENTS
How many transactions can
the system handle
How many sessions can
the system handle
What is the average
response size
What is the 90 % value /
business case
How much space will a
transaction use in the database
REAL WORLD PROJECTS
SLA are not defined
Concurrent users
Transactions / Second
Response Times
Storage
?
TEST TO DEFINE
SOFTWARE LEVEL AGREEMENTS
?
07/25/12 Alexandru Ersenie - Load & Performance Testing for J2EE 8
RESPONSE TIMES
What are the response times that users
are receiving when performing specific
transactions in the system:
Minimum / Maximum / Average response
time
50 to 90 percent line
1.2 METRICS
THROUGHPUT
How many users can the system handle,
and how many transactions can the
system handle in a unit of time
Transactions per second
As the number of users using the system increases,
the throughput increases as well. The system is busy
satisfying user requests
When the systems limit is reached, the throughput
decreases, and waiting occurs, since the system is
busy managing itself in order to satisfy all user requests
07/25/12 Alexandru Ersenie - Load & Performance Testing for J2EE 9
FACTORS ON
PERFORMANCE
1.3
07/25/12 Alexandru Ersenie - Load & Performance Testing for J2EE 10
SOFTWARE
Software design, architecture and configuration have great impact on performance:
PROGRAMMING CONFIGURATION
JVM
Config
Thread
Pool
EJB
container
JDBC
Max-connections=”5”;
jdbc-connection-timeout=”5”
Sync.
errors
Deadlocks
Race conditions
Arithmetic
errors
Buffer overflow
Arithm. exceptions
Redundant
operations
Dead code
Redundant assign
Other
-Xmx:2G
-XX:NewSize:1.8G
-XX:NewSize:1.8G
max-threadpoolsize=”5”
Max-cachesize=”512”;
cache-timeout=3600
Memory
leaks
80 % of all performance
problems in JAVA
1.3 FACTORS ON PERFORMANCE
07/25/12 Alexandru Ersenie - Load & Performance Testing for J2EE 11
HARDWARE
WINDOWS5000
cons
LINUX
1024
Open
files
Database Server and Hardware
Hardware /
Configuration
OS /
File System
1 Server
APP
Server
Web
Server
DB
Server
Single 3 Tier Server
DB Server /
Hardware
Oracle
Standard
CPU
CPU
Oracle
Enterprise
CPU
CPU
CPU
CPU
CPU
CPU
●No partitioning
●Limited online
operations
●Limited indexing
MSSql MySQL
●Different locking
implementation
●Different
Index performance
●default range for dynamic
ports in Windows is 1024
to 5000
●Unix systems have a
default maximum open
files limit of 1024
1.3 FACTORS ON PERFORMANCE
Shared resources:
●CPU
●Memory
●Network
●Disk
Virtualization
07/25/12 Alexandru Ersenie - Load & Performance Testing for J2EE 12
GENERATING LOAD
1.4
07/25/12 Alexandru Ersenie - Load & Performance Testing for J2EE 13
Web
&
Application
Server
LOAD
AGENT
LOAD
AGENT
LOAD
AGENT
LOAD
AGENT
LOAD
DISPATCHER
1.4 GENERATING LOAD
WHAT DO WE NEED?
Test Results
DB
Reporting
Server
Reports
MONITORS
07/25/12 Alexandru Ersenie - Load & Performance Testing for J2EE 14
1.4 GENERATING LOAD
IMPLEMENTATION
MODEL
Web
&
Application
Server
JMETER
JMETER
JMETER
JMETER
JMETER
CONTROLLER
MY SQL
DB
JASPER
SERVER
JASPER
REPORTS
JMX;
REST
MONITORS
07/25/12 Alexandru Ersenie - Load & Performance Testing for J2EE 15
LOAD AGENTS
Virtual Users
Ramp up time
Pause times
Number of transactions
Number of repetitions
Increasing rate/repetition
Server and Port
MONITORS
Object usage
EJB Resources
JDBC Resources
CPU Time
HEAP Monitoring
REPORTING
Process for DB Import
Process for Maven
Process for other formats
Generate Load
Collect Response Times
Monitor Hardware Resources
Monitor System Resources
Process Results
Import results into database
Generate Reports
DISPATCHER
1.4 GENERATING LOAD
'users=200 ramptime=200 pausetime=2000
pausetimedev=500 transactions=100 repeats=1
loopsinrepeat=1 warmup=no'
'hostname=myserver port=8080 protocol=https'
'trace_objects=yes
monitor_server=yes'
'generatereport=yes '
/start_test.sh
07/25/12 Alexandru Ersenie - Load & Performance Testing for J2EE 16
FUNCTIONS
configure_server
empty_logs
monitor_resources
generate_report
start_test
server_warmupJMETER DISPATCHER
FOLDER
/includes
/scripts
SCRIPT REPO
PLACE ORDER
EXPORT
LOGIN
HOMEPAGE
REGISTRATION
Scripts call
functions to
control the test
workflow
/testplans
TESTPLAN REPO
T_Place_Order
T_Export
T_Login
T_Homepage
T_Registration
Scripts start test
plans by using
functions
/results
RESULTS
Results are
stored here
MY SQL
DB
Processed
results are
exported to
a database
JASPER
REPORTS
Reports are
generated
from the DB
1.4 GENERATING LOAD
IMPLEMENTATION
MODEL
07/25/12 Alexandru Ersenie - Load & Performance Testing for J2EE 17
PERFORMANCE
REPORT
1.5
07/25/12 Alexandru Ersenie - Load & Performance Testing for J2EE 18
1.5 Performance Report
SUMMARY METRICS / TRANSACTION JVM CONFIGURATION
CPU USAGE HEAP USAGETHROUGHPUT & RESPONSE TIMES
07/25/12 Alexandru Ersenie - Load & Performance Testing for J2EE 19
MONITORING
2
07/25/12 Alexandru Ersenie - Load & Performance Testing for J2EE 20
Allows real time monitoring of critical resources
Active Monitoring
CPU UsageCPU Usage Heap UsageHeap Usage
Thread UsageThread UsageAllows real time interfering with the system:
Execute Garbage Collection
Generate Thread Dump
Analyze thread activity
Generate Heap Dump
Enables monitoring the system's limits
Allows a better understanding of how the system behaves depending on the load scenario, and the
user behavior, thus enabling to determine what the system can perform
Allows quickly modifying either the test configuration,or the software/hardware configuration, repeat the
test and compare the results
Allows parallel analysis of the system and the load scenario, thus enabling to identify root causes and
behaviors quickly
JDBC Usage EJB Cache Usage
2.1 Monitoring Types
AJP Thread UsageAJP Thread Usage
07/25/12 Alexandru Ersenie - Load & Performance Testing for J2EE 21
Object Usage
Reactive Monitoring
2.1 Monitoring Types
Throughput Response Times
Resource StatisticsGarbage Collection
Allows reactive analyze and detailed interpretation of
collected data
Data collectors can easily be extended using a modular approach (function based):
●Monitor JDBC; Monitor EJB; Monitor Thread Usage; Monitor Heap; etc
1. Enables monitoring the system's
behavior and resources over a
prolonged period of time
2. Easily extendable by adding collectors
3. Storable information for future comparing
4. Tool independent
5. High definable granularity
6. Automated
ADVANTAGES
1.High amount of data and complexity in
analyzing the results
2.Requires high proficiency with tools,
monitors, collectors for the purpose
of extending the monitoring system
DISADVANTAGES
07/25/12 Alexandru Ersenie - Load & Performance Testing for J2EE 22
REACTIVE MONITORING
2.2
07/25/12 Alexandru Ersenie - Load & Performance Testing for J2EE 23
2.2 Reactive Monitoring
RESPONSE TIMESWhat are the for specific transactions
THROUGHPUTWhat is the maximum for specific transactions
RESOURCE USAGEWhat is the for a load scenario
GARBAGE COLLECTIONHow efficient is the for a load scenario
50% line60% line70% line80% line90% line
Min
Resp
Time
Avg
Resp
Time
Max
Resp
Time
No. of
transactions
Average
Trans /
Second
Max
Trans /
Second
CPU HEAP JDBC EJB WEB OTHER.................
.............
.............
NO OF
YOUNG
GC
NO OF
OLD
GC
DURATION
OF
GC
%
IN
GC
OTHER.................
OTHER
OTHER
07/25/12 Alexandru Ersenie - Load & Performance Testing for J2EE 24
RESPONSE TIMES
THROUGHPUT
2.2 Reactive Monitoring
07/25/12 Alexandru Ersenie - Load & Performance Testing for J2EE 25
RESPONSE TIMES DRILL
THROUGHPUT DRILL
2.2 Reactive Monitoring
07/25/12 Alexandru Ersenie - Load & Performance Testing for J2EE 26
RESOURCES
CPU HEAP
JDBC CONNECTIONS
2.2 Reactive Monitoring
07/25/12 Alexandru Ersenie - Load & Performance Testing for J2EE 27
GARBAGE COLLECTION
2.2 Reactive Monitoring
07/25/12 Alexandru Ersenie - Load & Performance Testing for J2EE 28
GARBAGE COLLECTION STATISTICS
2.2 Reactive Monitoring
07/25/12 Alexandru Ersenie - Load & Performance Testing for J2EE 29
OBJECT USAGE
2.2 Reactive Monitoring
See the behavior of objects in time
Drill down on the object to see detailed information like Instances and Bytes occupied
07/25/12 Alexandru Ersenie - Load & Performance Testing for J2EE 30
2.2 Reactive Monitoring
OBJECT USAGE - PRIMITIVES
See the behavior of objects in time
Drill down on the object to see detailed information like Instances and Bytes occupied
07/25/12 Alexandru Ersenie - Load & Performance Testing for J2EE 31
JMX
Java Management Extensions
Supplies tools for managing/monitoring:
● Applications
●,System objects
● Devices
● Service oriented networks.
Resources are represented by
objects called MBeans
REST MONITORING
Monitoring and management data
Exposed by the application server
(example: Glassfish)
SYSTEM
●Top
●Vmstat
●Iostat
●jmap
SERVER LOGS
Garbage Collection Logs
COLLECTORS
LOAD GENERATOR
●Transactions
●Response Times
●Response Codes
●Response Sizes
MY SQL
DB
2.2 Reactive Monitoring
07/25/12 Alexandru Ersenie - Load & Performance Testing for J2EE 32
ACTIVE MONITORING
CPU
2.3
07/25/12 Alexandru Ersenie - Load & Performance Testing for J2EE 33
INSERT MOVIE WITH RUNNING TEST AND
MONITORING
07/25/12 Alexandru Ersenie - Load & Performance Testing for J2EE 34
●Represents the first input in identifying throughput decrease
Allows real time monitoring of CPU usage
Allows identifying hotspots(spikes) and relate them in time using graphical timestamp representation
Identify Garbage Collections and their effects on CPU Usage
Allows creating “Snapshots” and future reactive analysis based on CPU usage patterns
Allows identifying outside contributors (Database, JMS, I/O)
2.3 Monitoring Types – CPU Monitoring
07/25/12 Alexandru Ersenie - Load & Performance Testing for J2EE 35
Server resources properly configured – EJB Cache, EJB Pool, Thread Pool, JDBC
Connection Pool
OPTIMAL BEHAVIOR
2.3 Monitoring Types – CPU Monitoring
Load configuration adapted for optimum usage of resources: Requests are being
Processed, JDBC connections are used optimally
07/25/12 Alexandru Ersenie - Load & Performance Testing for J2EE 36
Depending on the configured Garbage Collection Strategy, on the Heap usage of your application, and the
properly configuration of the Heap according to business scenarios and memory footprints, Garbage Collection
can have a huge impact on throughput
GARBAGE COLLECTION
Parallel Collections with only two CPU
Stop the world strategy instead of CMS
Poor Heap Configuration (too small, too big, wrong rations of young to old
Manual Garbage Collections
2.3 Monitoring Types – CPU Monitoring
07/25/12 Alexandru Ersenie - Load & Performance Testing for J2EE 37
Long running queries – Occupying the JDBC resource for too long. Requests are being queued, translating
in decreased throughput and increased response times
Oracle Redo Log failed checkpoints – Database stops servicing for satisfying internal needs
Pause
Redo Log Statistics
Average of 1 Redo Log File / Minute : Redo Configuration needs update
DATABASE WAITS
2.3 Monitoring Types – CPU Monitoring
07/25/12 Alexandru Ersenie - Load & Performance Testing for J2EE 38
Number one cause for thread contention: wait times induced by synchronized methods (threads have to wait in
a queue for acquiring the lock)
Contention
THREAD CONTENTION
2.3 Monitoring Types – CPU Monitoring
07/25/12 Alexandru Ersenie - Load & Performance Testing for J2EE 39
ACTIVE MONITORING
HEAP
2.4
07/25/12 Alexandru Ersenie - Load & Performance Testing for J2EE 40
Allows real time monitoring of HEAP usage
Allows identifying memory leak trends
Correlate Garbage Collection with CPU Usage:
CPU usage
Time in GC
Overall system behavior on GC
Determine Garbage Collection rates and durations
2.4 Monitoring Types – HEAP Monitoring
HEAP MONITORING
07/25/12 Alexandru Ersenie - Load & Performance Testing for J2EE 41
PERMANENT
GENERATION
YOUNG
GENERATION
OLD GENERATION
●Internal representations of the
JAVA classes
●Objects describing classes and
methods
●Information used for
optimization by the JIT
compilers
●Initially objects are allocated in
the Young Generation
●When collected, objects are
moved between survivors
(default 32 collections)
●Objects that have survived the
maximum allowed number of
collections
●Dead objects waiting to be
collected
S1 S2
1 16
17 32
JVM HEAP STRUCTURE
2.4 Monitoring Types – HEAP Monitoring
07/25/12 Alexandru Ersenie - Load & Performance Testing for J2EE 42
JVM HEAP STRUCTURE
2.4 Monitoring Types – HEAP Monitoring
07/25/12 Alexandru Ersenie - Load & Performance Testing for J2EE 43
HEAP MONITORING
EXAMPLES
2.4
07/25/12 Alexandru Ersenie - Load & Performance Testing for J2EE 44
MEMORY LEAK ?
Used Memory increases as the number of
live objects surviving collections increases
(particularly under load)
An increasing trend is not necessarily a
memory leak. Objects can survive several
collections (max threshold), and can be
already dead, waiting for the old collector
In test systems wait for several full
garbage collections and build a trend line
in order to see if a memory leak is showing
Wait for a full garbage collection to see
if the memory decreases
Test systems can be provided with the
option of manually triggering a garbage
collection to see if objects are being
released after the test is over
2.4 Monitoring Types – HEAP Monitoring
07/25/12 Alexandru Ersenie - Load & Performance Testing for J2EE 45
A full Garbage Collection goes over all
generations, parsing the entire object
structure to identify removable objects
Usually the old generation is at least
twice the size of the young generation
Collection time for the old generation
significantly increased (object tree parsed)
Dead or marked for GC objects are
removed
Space is reclaimed
Garbage Collection strategy of critical
importance: Parallel or Concurrent GC
NO LEAK
2.4 Monitoring Types – HEAP Monitoring
07/25/12 Alexandru Ersenie - Load & Performance Testing for J2EE 46
Objects that cannot be collected are moved
to the old generation
Old Garbage Collections cannot remove
the objects; space cannot be reclaimed
Total Heap used increases constantly
Eventually the system performs only
Garbage Collection
Used Memory increases as the number of
live objects surviving collections increases
(particularly under load)
The system is busy managing itself,
instead of running your application
Both throughput and response times
affected
Server restart is required
MEMORY LEAK
The right time to trigger a HEAP DUMP
and see what objects are leaking
ACTION
2.4 Monitoring Types – HEAP Monitoring
07/25/12 Alexandru Ersenie - Load & Performance Testing for J2EE 47
ACTIVE MONITORING
OTHER MONITORS
2.5
07/25/12 Alexandru Ersenie - Load & Performance Testing for J2EE 48
User Profile
Session Information
File contents
Caching shared data in a Hash Map
Every request will want to acquire and
hold the lock on the hash map,
becoming a bottleneck
Brian Goetz: Threading lightly : Reducing Contention
Synchronized Methods
One thread is executing a synchronized
method for an object, all other threads that
invoke synchronized methods for the same
object block (suspend execution) until the first
thread is done with the object.
Java Tutorials - Concurrency
Contention
Threads can be monitored, and blocking
or long running threads can be identified
THREAD CONTENTION
2.5 Monitoring Types – Other Monitors
07/25/12 Alexandru Ersenie - Load & Performance Testing for J2EE 49
^
Most often contention problems appear
only under load, due to concurrency effects
(more requests on the same
object/method)
The right time to trigger a thread dump
and see the root cause of contention
ACTION
BEHAVIOR
CPU usage drops dramatically, for it is
busy with solving the locks instead of
satisfying business requests
Several threads in “Monitor” state, at
the same time, indicate thread
contention
THREAD CONTENTION
2.5 Monitoring Types – Other Monitors
07/25/12 Alexandru Ersenie - Load & Performance Testing for J2EE 50
Allows quickly identifying
blocked/blocking threads
Lists all existing threads and their
state when the thread dump was
triggered
Threads are listed together with
their stack traces, allowing
identifying of:
What resource is being locked
Who locks the resource?
What is the locking thread
doing?
THREAD DUMPS
2.5 Monitoring Types – Other Monitors
07/25/12 Alexandru Ersenie - Load & Performance Testing for J2EE 51
THREAD DUMPS
2.5 Monitoring Types – Other Monitors
Kill -3 PID : writes
stack trace to
jvm.log
jvm.log can be
imported into IBM
Thread Analyzer
07/25/12 Alexandru Ersenie - Load & Performance Testing for J2EE 52
Actively monitor the number of
JDBC resources in use, and other
statistics like:
● Connections created
● Connections removed
● Connections in pool
JDBC MONITORING
Actively monitor the number of EJB
Beans in cache and other statistics
like:
● Cache hits
● Passivation statistics
● Number of beans created
● Number of beans removed
EJB MONITORING
Actively monitor the number of
requests, and other statistics like:
● Error count
● Max request time
WEB MONITORING
2.5 Monitoring Types – Other Monitors
07/25/12 Alexandru Ersenie - Load & Performance Testing for J2EE 53
Database Call on each Transaction – In this case each transaction checks if the user is valid, by creating
and using a new JDBC Connection / check;
2.5 Monitoring Types – Case Study
07/25/12 Alexandru Ersenie - Load & Performance Testing for J2EE 54
TOOLS
3
07/25/12 Alexandru Ersenie - Load & Performance Testing for J2EE 55
3. Tools
MONITORING
VISUAL VM
CheckJMX
REST Interface
System Interfaces
PROCESSING
PENTAHO
Shell Scripts
LOAD
JMeter
Shell Scripts
REPORT DESIGN
IReport
REPORTS
Jasper Reports
HEAP ANALYSER
MAT
YourKit
THREAD ANALYSER
VisualVM
IBM Thread Analyzer
GARBAGE COLLECTION
HP Jmeter
PROFILING
YourKit
07/25/12 Alexandru Ersenie - Load & Performance Testing for J2EE 56
THANK YOU FOR LISTENING
?

Mais conteúdo relacionado

Mais procurados

Software testing performance testing
Software testing  performance testingSoftware testing  performance testing
Software testing performance testingGaneshKumarKanthiah
 
Load Testing Strategy 101
Load Testing Strategy 101Load Testing Strategy 101
Load Testing Strategy 101iradari
 
Performance Testing
Performance TestingPerformance Testing
Performance Testingsharmaparish
 
Performance Testing Using VS 2010 - Part 1
Performance Testing Using VS 2010 - Part 1Performance Testing Using VS 2010 - Part 1
Performance Testing Using VS 2010 - Part 1Mohamed Tarek
 
Performance Testing using LoadRunner
Performance Testing using LoadRunnerPerformance Testing using LoadRunner
Performance Testing using LoadRunnerKumar Gupta
 
Load and performance testing
Load and performance testingLoad and performance testing
Load and performance testingQualitest
 
LoadRunner Performance Testing
LoadRunner Performance TestingLoadRunner Performance Testing
LoadRunner Performance TestingAtul Pant
 
An Introduction to Performance Testing
An Introduction to Performance TestingAn Introduction to Performance Testing
An Introduction to Performance TestingSWAAM Tech
 
Performance testing interview questions and answers
Performance testing interview questions and answersPerformance testing interview questions and answers
Performance testing interview questions and answersGaruda Trainings
 
Performance Testing from Scratch + JMeter intro
Performance Testing from Scratch + JMeter introPerformance Testing from Scratch + JMeter intro
Performance Testing from Scratch + JMeter introMykola Kovsh
 
Introduction to Performance testing
Introduction to Performance testingIntroduction to Performance testing
Introduction to Performance testingsilviasiqueirahp
 
Performance Testing And Its Type | Benefits Of Performance Testing
Performance Testing And Its Type | Benefits Of Performance TestingPerformance Testing And Its Type | Benefits Of Performance Testing
Performance Testing And Its Type | Benefits Of Performance TestingKostCare
 
Performance testing
Performance testingPerformance testing
Performance testingJyoti Babbar
 
Performance Testing With Loadrunner
Performance Testing With LoadrunnerPerformance Testing With Loadrunner
Performance Testing With Loadrunnervladimir zaremba
 

Mais procurados (20)

Software testing performance testing
Software testing  performance testingSoftware testing  performance testing
Software testing performance testing
 
QSpiders - Introduction to HP Load Runner
QSpiders - Introduction to HP Load RunnerQSpiders - Introduction to HP Load Runner
QSpiders - Introduction to HP Load Runner
 
Load Testing Strategy 101
Load Testing Strategy 101Load Testing Strategy 101
Load Testing Strategy 101
 
Performance Testing
Performance TestingPerformance Testing
Performance Testing
 
Performance Testing Overview
Performance Testing OverviewPerformance Testing Overview
Performance Testing Overview
 
Performance Testing Using VS 2010 - Part 1
Performance Testing Using VS 2010 - Part 1Performance Testing Using VS 2010 - Part 1
Performance Testing Using VS 2010 - Part 1
 
Performance testing
Performance testingPerformance testing
Performance testing
 
Performance Testing using LoadRunner
Performance Testing using LoadRunnerPerformance Testing using LoadRunner
Performance Testing using LoadRunner
 
Load and performance testing
Load and performance testingLoad and performance testing
Load and performance testing
 
QSpiders - Simple Recording and Configuration of recording options for HP Loa...
QSpiders - Simple Recording and Configuration of recording options for HP Loa...QSpiders - Simple Recording and Configuration of recording options for HP Loa...
QSpiders - Simple Recording and Configuration of recording options for HP Loa...
 
LoadRunner Performance Testing
LoadRunner Performance TestingLoadRunner Performance Testing
LoadRunner Performance Testing
 
An Introduction to Performance Testing
An Introduction to Performance TestingAn Introduction to Performance Testing
An Introduction to Performance Testing
 
Types of performance testing
Types of performance testingTypes of performance testing
Types of performance testing
 
Performance testing interview questions and answers
Performance testing interview questions and answersPerformance testing interview questions and answers
Performance testing interview questions and answers
 
Performance Testing from Scratch + JMeter intro
Performance Testing from Scratch + JMeter introPerformance Testing from Scratch + JMeter intro
Performance Testing from Scratch + JMeter intro
 
Introduction to Performance testing
Introduction to Performance testingIntroduction to Performance testing
Introduction to Performance testing
 
Performance Testing And Its Type | Benefits Of Performance Testing
Performance Testing And Its Type | Benefits Of Performance TestingPerformance Testing And Its Type | Benefits Of Performance Testing
Performance Testing And Its Type | Benefits Of Performance Testing
 
Performance testing
Performance testingPerformance testing
Performance testing
 
Performance Testing With Loadrunner
Performance Testing With LoadrunnerPerformance Testing With Loadrunner
Performance Testing With Loadrunner
 
How to start performance testing project
How to start performance testing projectHow to start performance testing project
How to start performance testing project
 

Semelhante a Load and Performance Testing for J2EE - Testing, monitoring and reporting using Open Source Tools

Architecting and Tuning IIB/eXtreme Scale for Maximum Performance and Reliabi...
Architecting and Tuning IIB/eXtreme Scale for Maximum Performance and Reliabi...Architecting and Tuning IIB/eXtreme Scale for Maximum Performance and Reliabi...
Architecting and Tuning IIB/eXtreme Scale for Maximum Performance and Reliabi...Prolifics
 
Performance monitoring - Adoniram Mishra, Rupesh Dubey, ThoughtWorks
Performance monitoring - Adoniram Mishra, Rupesh Dubey, ThoughtWorksPerformance monitoring - Adoniram Mishra, Rupesh Dubey, ThoughtWorks
Performance monitoring - Adoniram Mishra, Rupesh Dubey, ThoughtWorksThoughtworks
 
Ginsbourg.com - Performance and Load Test Report Template LTR 1.5
Ginsbourg.com - Performance and Load Test Report Template LTR 1.5Ginsbourg.com - Performance and Load Test Report Template LTR 1.5
Ginsbourg.com - Performance and Load Test Report Template LTR 1.5Shay Ginsbourg
 
Best practices for large oracle apps r12 implementations apps14
Best practices for large oracle apps r12 implementations apps14Best practices for large oracle apps r12 implementations apps14
Best practices for large oracle apps r12 implementations apps14Ajith Narayanan
 
T3 Consortium's Performance Center of Excellence
T3 Consortium's Performance Center of ExcellenceT3 Consortium's Performance Center of Excellence
T3 Consortium's Performance Center of Excellenceveehikle
 
Performance testing : An Overview
Performance testing : An OverviewPerformance testing : An Overview
Performance testing : An Overviewsharadkjain
 
Performance Test Plan - Sample 1
Performance Test Plan - Sample 1Performance Test Plan - Sample 1
Performance Test Plan - Sample 1Atul Pant
 
Iwsm2014 performance measurement for cloud computing applications using iso...
Iwsm2014   performance measurement for cloud computing applications using iso...Iwsm2014   performance measurement for cloud computing applications using iso...
Iwsm2014 performance measurement for cloud computing applications using iso...Nesma
 
How's relevant JMeter to me - DevConf (Letterkenny)
How's relevant JMeter to me - DevConf (Letterkenny)How's relevant JMeter to me - DevConf (Letterkenny)
How's relevant JMeter to me - DevConf (Letterkenny)Giulio Vian
 
Ainars Galvans - Hints on complex system performance optimization
Ainars Galvans - Hints on complex system performance optimizationAinars Galvans - Hints on complex system performance optimization
Ainars Galvans - Hints on complex system performance optimizationDevConFu
 
Performance Tuning Oracle Weblogic Server 12c
Performance Tuning Oracle Weblogic Server 12cPerformance Tuning Oracle Weblogic Server 12c
Performance Tuning Oracle Weblogic Server 12cAjith Narayanan
 
Performance Test Slideshow Recent
Performance Test Slideshow RecentPerformance Test Slideshow Recent
Performance Test Slideshow RecentFuture Simmons
 
Performance Test Slideshow R E C E N T
Performance Test Slideshow R E C E N TPerformance Test Slideshow R E C E N T
Performance Test Slideshow R E C E N TFuture Simmons
 
Adding Value in the Cloud with Performance Test
Adding Value in the Cloud with Performance TestAdding Value in the Cloud with Performance Test
Adding Value in the Cloud with Performance TestRodolfo Kohn
 
Maintaining and Caring for your EPM Environment
Maintaining and Caring for your EPM EnvironmentMaintaining and Caring for your EPM Environment
Maintaining and Caring for your EPM EnvironmentEmtec Inc.
 
Introduction to Back End Automation Testing - Nguyen Vu Hoang, Hoang Phi
Introduction to Back End Automation Testing - Nguyen Vu Hoang, Hoang PhiIntroduction to Back End Automation Testing - Nguyen Vu Hoang, Hoang Phi
Introduction to Back End Automation Testing - Nguyen Vu Hoang, Hoang PhiHo Chi Minh City Software Testing Club
 
Proactive ops for container orchestration environments
Proactive ops for container orchestration environmentsProactive ops for container orchestration environments
Proactive ops for container orchestration environmentsDocker, Inc.
 
USING SEMI-SUPERVISED CLASSIFIER TO FORECAST EXTREME CPU UTILIZATION
USING SEMI-SUPERVISED CLASSIFIER TO FORECAST EXTREME CPU UTILIZATIONUSING SEMI-SUPERVISED CLASSIFIER TO FORECAST EXTREME CPU UTILIZATION
USING SEMI-SUPERVISED CLASSIFIER TO FORECAST EXTREME CPU UTILIZATIONijaia
 
Using Semi-supervised Classifier to Forecast Extreme CPU Utilization
Using Semi-supervised Classifier to Forecast Extreme CPU UtilizationUsing Semi-supervised Classifier to Forecast Extreme CPU Utilization
Using Semi-supervised Classifier to Forecast Extreme CPU Utilizationgerogepatton
 
USING SEMI-SUPERVISED CLASSIFIER TO FORECAST EXTREME CPU UTILIZATION
USING SEMI-SUPERVISED CLASSIFIER TO FORECAST EXTREME CPU UTILIZATIONUSING SEMI-SUPERVISED CLASSIFIER TO FORECAST EXTREME CPU UTILIZATION
USING SEMI-SUPERVISED CLASSIFIER TO FORECAST EXTREME CPU UTILIZATIONgerogepatton
 

Semelhante a Load and Performance Testing for J2EE - Testing, monitoring and reporting using Open Source Tools (20)

Architecting and Tuning IIB/eXtreme Scale for Maximum Performance and Reliabi...
Architecting and Tuning IIB/eXtreme Scale for Maximum Performance and Reliabi...Architecting and Tuning IIB/eXtreme Scale for Maximum Performance and Reliabi...
Architecting and Tuning IIB/eXtreme Scale for Maximum Performance and Reliabi...
 
Performance monitoring - Adoniram Mishra, Rupesh Dubey, ThoughtWorks
Performance monitoring - Adoniram Mishra, Rupesh Dubey, ThoughtWorksPerformance monitoring - Adoniram Mishra, Rupesh Dubey, ThoughtWorks
Performance monitoring - Adoniram Mishra, Rupesh Dubey, ThoughtWorks
 
Ginsbourg.com - Performance and Load Test Report Template LTR 1.5
Ginsbourg.com - Performance and Load Test Report Template LTR 1.5Ginsbourg.com - Performance and Load Test Report Template LTR 1.5
Ginsbourg.com - Performance and Load Test Report Template LTR 1.5
 
Best practices for large oracle apps r12 implementations apps14
Best practices for large oracle apps r12 implementations apps14Best practices for large oracle apps r12 implementations apps14
Best practices for large oracle apps r12 implementations apps14
 
T3 Consortium's Performance Center of Excellence
T3 Consortium's Performance Center of ExcellenceT3 Consortium's Performance Center of Excellence
T3 Consortium's Performance Center of Excellence
 
Performance testing : An Overview
Performance testing : An OverviewPerformance testing : An Overview
Performance testing : An Overview
 
Performance Test Plan - Sample 1
Performance Test Plan - Sample 1Performance Test Plan - Sample 1
Performance Test Plan - Sample 1
 
Iwsm2014 performance measurement for cloud computing applications using iso...
Iwsm2014   performance measurement for cloud computing applications using iso...Iwsm2014   performance measurement for cloud computing applications using iso...
Iwsm2014 performance measurement for cloud computing applications using iso...
 
How's relevant JMeter to me - DevConf (Letterkenny)
How's relevant JMeter to me - DevConf (Letterkenny)How's relevant JMeter to me - DevConf (Letterkenny)
How's relevant JMeter to me - DevConf (Letterkenny)
 
Ainars Galvans - Hints on complex system performance optimization
Ainars Galvans - Hints on complex system performance optimizationAinars Galvans - Hints on complex system performance optimization
Ainars Galvans - Hints on complex system performance optimization
 
Performance Tuning Oracle Weblogic Server 12c
Performance Tuning Oracle Weblogic Server 12cPerformance Tuning Oracle Weblogic Server 12c
Performance Tuning Oracle Weblogic Server 12c
 
Performance Test Slideshow Recent
Performance Test Slideshow RecentPerformance Test Slideshow Recent
Performance Test Slideshow Recent
 
Performance Test Slideshow R E C E N T
Performance Test Slideshow R E C E N TPerformance Test Slideshow R E C E N T
Performance Test Slideshow R E C E N T
 
Adding Value in the Cloud with Performance Test
Adding Value in the Cloud with Performance TestAdding Value in the Cloud with Performance Test
Adding Value in the Cloud with Performance Test
 
Maintaining and Caring for your EPM Environment
Maintaining and Caring for your EPM EnvironmentMaintaining and Caring for your EPM Environment
Maintaining and Caring for your EPM Environment
 
Introduction to Back End Automation Testing - Nguyen Vu Hoang, Hoang Phi
Introduction to Back End Automation Testing - Nguyen Vu Hoang, Hoang PhiIntroduction to Back End Automation Testing - Nguyen Vu Hoang, Hoang Phi
Introduction to Back End Automation Testing - Nguyen Vu Hoang, Hoang Phi
 
Proactive ops for container orchestration environments
Proactive ops for container orchestration environmentsProactive ops for container orchestration environments
Proactive ops for container orchestration environments
 
USING SEMI-SUPERVISED CLASSIFIER TO FORECAST EXTREME CPU UTILIZATION
USING SEMI-SUPERVISED CLASSIFIER TO FORECAST EXTREME CPU UTILIZATIONUSING SEMI-SUPERVISED CLASSIFIER TO FORECAST EXTREME CPU UTILIZATION
USING SEMI-SUPERVISED CLASSIFIER TO FORECAST EXTREME CPU UTILIZATION
 
Using Semi-supervised Classifier to Forecast Extreme CPU Utilization
Using Semi-supervised Classifier to Forecast Extreme CPU UtilizationUsing Semi-supervised Classifier to Forecast Extreme CPU Utilization
Using Semi-supervised Classifier to Forecast Extreme CPU Utilization
 
USING SEMI-SUPERVISED CLASSIFIER TO FORECAST EXTREME CPU UTILIZATION
USING SEMI-SUPERVISED CLASSIFIER TO FORECAST EXTREME CPU UTILIZATIONUSING SEMI-SUPERVISED CLASSIFIER TO FORECAST EXTREME CPU UTILIZATION
USING SEMI-SUPERVISED CLASSIFIER TO FORECAST EXTREME CPU UTILIZATION
 

Último

From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfPrecisely
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESmohitsingh558521
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxBkGupta21
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfMounikaPolabathina
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 

Último (20)

From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptx
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 

Load and Performance Testing for J2EE - Testing, monitoring and reporting using Open Source Tools

  • 1. LOAD & PERFORMANCE TESTING FOR J2EE Alexandru Ersenie Senior Load & Performance Test Engineer Edict eGaming GmbH, Hamburg alexandru.ersenie@googlemail.com http://www.alexandru-ersenie.com TESTING, MONITORING, ANALYSING AND REPORTING USING OPEN SOURCE TOOLS
  • 2. 07/25/12 Alexandru Ersenie - Load & Performance Testing for J2EE 2 AGENDA SAMPLING/PROFILING 3 TIER TUNING VIRTUALIZATION TESTING IN THE CLOUD SECURITY LOGGING BEST PRACTICES NETWORKING ........ PERFORMANCE BASICS Scope Metrics Factors on Performance Performance Reports Generating Load I MONITORING Monitoring types CPU Monitoring Other Performance Monitors Reactive Monitoring/Reporting II JVM GC and Heap Monitoring TOOLS Monitoring Reporting Analysis III
  • 3. 07/25/12 Alexandru Ersenie - Load & Performance Testing for J2EE 3 PERFORMANCE BASICS 1.1
  • 4. 07/25/12 Alexandru Ersenie - Load & Performance Testing for J2EE 4 1.1 DEFINITION AND SCOPE PERFORMANCE Short response time for a given piece of work High throughput (rate of processing work) Low utilization of computing resources High availability of the computing system or application Efficient usage of hardware resources; Storage Continue to operate despite errors SCALABILITY Handle growing amount of work; Ability to enlarge to accommodate more work EFFICIENCY RELIABILITY Recover after failure; Mean time between failures ROBUSTNESS Non functional requirements
  • 5. 07/25/12 Alexandru Ersenie - Load & Performance Testing for J2EE 5 1.1 REAL WORLD NUMBERS 1 second of slower performance on pages could cost Amazon $1.6 billion in sales each year 25% of users will leave a site if a page takes more than 4 seconds to load. http://performance-testing.org/performance-testing-statistics http://en.wikipedia.org/wiki/BigTable RESPONSE TIMES Facebook serves more than 2 million ‘Like’ buttons per second (June 2010). Facebook held a clear lead in total page views during March 2011, recording about 85 billion. This was more than three times as many as number two Google, which had about 25.6 billion THROUGHPUT Google uses a compressed, high performance, proprietary data storage file system, (...) designed to scale into the petabyte range (1000 terabytes) EFFICIENCY
  • 6. 07/25/12 Alexandru Ersenie - Load & Performance Testing for J2EE 6 METRICS 1.2
  • 7. 07/25/12 Alexandru Ersenie - Load & Performance Testing for J2EE 7 1.2 METRICS OPTIMISTIC SLA are already defined Concurrent users Transactions / Second Response Times Storage Concurrent users 10 000 logged in users 50 000 visitors Transactions / Second 1 000 business transactions / second 4 000 web requests / second Response Times Landing page total load time less than 8 seconds for 70 % of the users Transaction Response time less than 2 seconds for 90 % of all transactions Storage Maximum 100 bytes per transaction TEST TO ACCHIEVE DEFINED SOFTWARE LEVEL AGREEMENTS How many transactions can the system handle How many sessions can the system handle What is the average response size What is the 90 % value / business case How much space will a transaction use in the database REAL WORLD PROJECTS SLA are not defined Concurrent users Transactions / Second Response Times Storage ? TEST TO DEFINE SOFTWARE LEVEL AGREEMENTS ?
  • 8. 07/25/12 Alexandru Ersenie - Load & Performance Testing for J2EE 8 RESPONSE TIMES What are the response times that users are receiving when performing specific transactions in the system: Minimum / Maximum / Average response time 50 to 90 percent line 1.2 METRICS THROUGHPUT How many users can the system handle, and how many transactions can the system handle in a unit of time Transactions per second As the number of users using the system increases, the throughput increases as well. The system is busy satisfying user requests When the systems limit is reached, the throughput decreases, and waiting occurs, since the system is busy managing itself in order to satisfy all user requests
  • 9. 07/25/12 Alexandru Ersenie - Load & Performance Testing for J2EE 9 FACTORS ON PERFORMANCE 1.3
  • 10. 07/25/12 Alexandru Ersenie - Load & Performance Testing for J2EE 10 SOFTWARE Software design, architecture and configuration have great impact on performance: PROGRAMMING CONFIGURATION JVM Config Thread Pool EJB container JDBC Max-connections=”5”; jdbc-connection-timeout=”5” Sync. errors Deadlocks Race conditions Arithmetic errors Buffer overflow Arithm. exceptions Redundant operations Dead code Redundant assign Other -Xmx:2G -XX:NewSize:1.8G -XX:NewSize:1.8G max-threadpoolsize=”5” Max-cachesize=”512”; cache-timeout=3600 Memory leaks 80 % of all performance problems in JAVA 1.3 FACTORS ON PERFORMANCE
  • 11. 07/25/12 Alexandru Ersenie - Load & Performance Testing for J2EE 11 HARDWARE WINDOWS5000 cons LINUX 1024 Open files Database Server and Hardware Hardware / Configuration OS / File System 1 Server APP Server Web Server DB Server Single 3 Tier Server DB Server / Hardware Oracle Standard CPU CPU Oracle Enterprise CPU CPU CPU CPU CPU CPU ●No partitioning ●Limited online operations ●Limited indexing MSSql MySQL ●Different locking implementation ●Different Index performance ●default range for dynamic ports in Windows is 1024 to 5000 ●Unix systems have a default maximum open files limit of 1024 1.3 FACTORS ON PERFORMANCE Shared resources: ●CPU ●Memory ●Network ●Disk Virtualization
  • 12. 07/25/12 Alexandru Ersenie - Load & Performance Testing for J2EE 12 GENERATING LOAD 1.4
  • 13. 07/25/12 Alexandru Ersenie - Load & Performance Testing for J2EE 13 Web & Application Server LOAD AGENT LOAD AGENT LOAD AGENT LOAD AGENT LOAD DISPATCHER 1.4 GENERATING LOAD WHAT DO WE NEED? Test Results DB Reporting Server Reports MONITORS
  • 14. 07/25/12 Alexandru Ersenie - Load & Performance Testing for J2EE 14 1.4 GENERATING LOAD IMPLEMENTATION MODEL Web & Application Server JMETER JMETER JMETER JMETER JMETER CONTROLLER MY SQL DB JASPER SERVER JASPER REPORTS JMX; REST MONITORS
  • 15. 07/25/12 Alexandru Ersenie - Load & Performance Testing for J2EE 15 LOAD AGENTS Virtual Users Ramp up time Pause times Number of transactions Number of repetitions Increasing rate/repetition Server and Port MONITORS Object usage EJB Resources JDBC Resources CPU Time HEAP Monitoring REPORTING Process for DB Import Process for Maven Process for other formats Generate Load Collect Response Times Monitor Hardware Resources Monitor System Resources Process Results Import results into database Generate Reports DISPATCHER 1.4 GENERATING LOAD 'users=200 ramptime=200 pausetime=2000 pausetimedev=500 transactions=100 repeats=1 loopsinrepeat=1 warmup=no' 'hostname=myserver port=8080 protocol=https' 'trace_objects=yes monitor_server=yes' 'generatereport=yes ' /start_test.sh
  • 16. 07/25/12 Alexandru Ersenie - Load & Performance Testing for J2EE 16 FUNCTIONS configure_server empty_logs monitor_resources generate_report start_test server_warmupJMETER DISPATCHER FOLDER /includes /scripts SCRIPT REPO PLACE ORDER EXPORT LOGIN HOMEPAGE REGISTRATION Scripts call functions to control the test workflow /testplans TESTPLAN REPO T_Place_Order T_Export T_Login T_Homepage T_Registration Scripts start test plans by using functions /results RESULTS Results are stored here MY SQL DB Processed results are exported to a database JASPER REPORTS Reports are generated from the DB 1.4 GENERATING LOAD IMPLEMENTATION MODEL
  • 17. 07/25/12 Alexandru Ersenie - Load & Performance Testing for J2EE 17 PERFORMANCE REPORT 1.5
  • 18. 07/25/12 Alexandru Ersenie - Load & Performance Testing for J2EE 18 1.5 Performance Report SUMMARY METRICS / TRANSACTION JVM CONFIGURATION CPU USAGE HEAP USAGETHROUGHPUT & RESPONSE TIMES
  • 19. 07/25/12 Alexandru Ersenie - Load & Performance Testing for J2EE 19 MONITORING 2
  • 20. 07/25/12 Alexandru Ersenie - Load & Performance Testing for J2EE 20 Allows real time monitoring of critical resources Active Monitoring CPU UsageCPU Usage Heap UsageHeap Usage Thread UsageThread UsageAllows real time interfering with the system: Execute Garbage Collection Generate Thread Dump Analyze thread activity Generate Heap Dump Enables monitoring the system's limits Allows a better understanding of how the system behaves depending on the load scenario, and the user behavior, thus enabling to determine what the system can perform Allows quickly modifying either the test configuration,or the software/hardware configuration, repeat the test and compare the results Allows parallel analysis of the system and the load scenario, thus enabling to identify root causes and behaviors quickly JDBC Usage EJB Cache Usage 2.1 Monitoring Types AJP Thread UsageAJP Thread Usage
  • 21. 07/25/12 Alexandru Ersenie - Load & Performance Testing for J2EE 21 Object Usage Reactive Monitoring 2.1 Monitoring Types Throughput Response Times Resource StatisticsGarbage Collection Allows reactive analyze and detailed interpretation of collected data Data collectors can easily be extended using a modular approach (function based): ●Monitor JDBC; Monitor EJB; Monitor Thread Usage; Monitor Heap; etc 1. Enables monitoring the system's behavior and resources over a prolonged period of time 2. Easily extendable by adding collectors 3. Storable information for future comparing 4. Tool independent 5. High definable granularity 6. Automated ADVANTAGES 1.High amount of data and complexity in analyzing the results 2.Requires high proficiency with tools, monitors, collectors for the purpose of extending the monitoring system DISADVANTAGES
  • 22. 07/25/12 Alexandru Ersenie - Load & Performance Testing for J2EE 22 REACTIVE MONITORING 2.2
  • 23. 07/25/12 Alexandru Ersenie - Load & Performance Testing for J2EE 23 2.2 Reactive Monitoring RESPONSE TIMESWhat are the for specific transactions THROUGHPUTWhat is the maximum for specific transactions RESOURCE USAGEWhat is the for a load scenario GARBAGE COLLECTIONHow efficient is the for a load scenario 50% line60% line70% line80% line90% line Min Resp Time Avg Resp Time Max Resp Time No. of transactions Average Trans / Second Max Trans / Second CPU HEAP JDBC EJB WEB OTHER................. ............. ............. NO OF YOUNG GC NO OF OLD GC DURATION OF GC % IN GC OTHER................. OTHER OTHER
  • 24. 07/25/12 Alexandru Ersenie - Load & Performance Testing for J2EE 24 RESPONSE TIMES THROUGHPUT 2.2 Reactive Monitoring
  • 25. 07/25/12 Alexandru Ersenie - Load & Performance Testing for J2EE 25 RESPONSE TIMES DRILL THROUGHPUT DRILL 2.2 Reactive Monitoring
  • 26. 07/25/12 Alexandru Ersenie - Load & Performance Testing for J2EE 26 RESOURCES CPU HEAP JDBC CONNECTIONS 2.2 Reactive Monitoring
  • 27. 07/25/12 Alexandru Ersenie - Load & Performance Testing for J2EE 27 GARBAGE COLLECTION 2.2 Reactive Monitoring
  • 28. 07/25/12 Alexandru Ersenie - Load & Performance Testing for J2EE 28 GARBAGE COLLECTION STATISTICS 2.2 Reactive Monitoring
  • 29. 07/25/12 Alexandru Ersenie - Load & Performance Testing for J2EE 29 OBJECT USAGE 2.2 Reactive Monitoring See the behavior of objects in time Drill down on the object to see detailed information like Instances and Bytes occupied
  • 30. 07/25/12 Alexandru Ersenie - Load & Performance Testing for J2EE 30 2.2 Reactive Monitoring OBJECT USAGE - PRIMITIVES See the behavior of objects in time Drill down on the object to see detailed information like Instances and Bytes occupied
  • 31. 07/25/12 Alexandru Ersenie - Load & Performance Testing for J2EE 31 JMX Java Management Extensions Supplies tools for managing/monitoring: ● Applications ●,System objects ● Devices ● Service oriented networks. Resources are represented by objects called MBeans REST MONITORING Monitoring and management data Exposed by the application server (example: Glassfish) SYSTEM ●Top ●Vmstat ●Iostat ●jmap SERVER LOGS Garbage Collection Logs COLLECTORS LOAD GENERATOR ●Transactions ●Response Times ●Response Codes ●Response Sizes MY SQL DB 2.2 Reactive Monitoring
  • 32. 07/25/12 Alexandru Ersenie - Load & Performance Testing for J2EE 32 ACTIVE MONITORING CPU 2.3
  • 33. 07/25/12 Alexandru Ersenie - Load & Performance Testing for J2EE 33 INSERT MOVIE WITH RUNNING TEST AND MONITORING
  • 34. 07/25/12 Alexandru Ersenie - Load & Performance Testing for J2EE 34 ●Represents the first input in identifying throughput decrease Allows real time monitoring of CPU usage Allows identifying hotspots(spikes) and relate them in time using graphical timestamp representation Identify Garbage Collections and their effects on CPU Usage Allows creating “Snapshots” and future reactive analysis based on CPU usage patterns Allows identifying outside contributors (Database, JMS, I/O) 2.3 Monitoring Types – CPU Monitoring
  • 35. 07/25/12 Alexandru Ersenie - Load & Performance Testing for J2EE 35 Server resources properly configured – EJB Cache, EJB Pool, Thread Pool, JDBC Connection Pool OPTIMAL BEHAVIOR 2.3 Monitoring Types – CPU Monitoring Load configuration adapted for optimum usage of resources: Requests are being Processed, JDBC connections are used optimally
  • 36. 07/25/12 Alexandru Ersenie - Load & Performance Testing for J2EE 36 Depending on the configured Garbage Collection Strategy, on the Heap usage of your application, and the properly configuration of the Heap according to business scenarios and memory footprints, Garbage Collection can have a huge impact on throughput GARBAGE COLLECTION Parallel Collections with only two CPU Stop the world strategy instead of CMS Poor Heap Configuration (too small, too big, wrong rations of young to old Manual Garbage Collections 2.3 Monitoring Types – CPU Monitoring
  • 37. 07/25/12 Alexandru Ersenie - Load & Performance Testing for J2EE 37 Long running queries – Occupying the JDBC resource for too long. Requests are being queued, translating in decreased throughput and increased response times Oracle Redo Log failed checkpoints – Database stops servicing for satisfying internal needs Pause Redo Log Statistics Average of 1 Redo Log File / Minute : Redo Configuration needs update DATABASE WAITS 2.3 Monitoring Types – CPU Monitoring
  • 38. 07/25/12 Alexandru Ersenie - Load & Performance Testing for J2EE 38 Number one cause for thread contention: wait times induced by synchronized methods (threads have to wait in a queue for acquiring the lock) Contention THREAD CONTENTION 2.3 Monitoring Types – CPU Monitoring
  • 39. 07/25/12 Alexandru Ersenie - Load & Performance Testing for J2EE 39 ACTIVE MONITORING HEAP 2.4
  • 40. 07/25/12 Alexandru Ersenie - Load & Performance Testing for J2EE 40 Allows real time monitoring of HEAP usage Allows identifying memory leak trends Correlate Garbage Collection with CPU Usage: CPU usage Time in GC Overall system behavior on GC Determine Garbage Collection rates and durations 2.4 Monitoring Types – HEAP Monitoring HEAP MONITORING
  • 41. 07/25/12 Alexandru Ersenie - Load & Performance Testing for J2EE 41 PERMANENT GENERATION YOUNG GENERATION OLD GENERATION ●Internal representations of the JAVA classes ●Objects describing classes and methods ●Information used for optimization by the JIT compilers ●Initially objects are allocated in the Young Generation ●When collected, objects are moved between survivors (default 32 collections) ●Objects that have survived the maximum allowed number of collections ●Dead objects waiting to be collected S1 S2 1 16 17 32 JVM HEAP STRUCTURE 2.4 Monitoring Types – HEAP Monitoring
  • 42. 07/25/12 Alexandru Ersenie - Load & Performance Testing for J2EE 42 JVM HEAP STRUCTURE 2.4 Monitoring Types – HEAP Monitoring
  • 43. 07/25/12 Alexandru Ersenie - Load & Performance Testing for J2EE 43 HEAP MONITORING EXAMPLES 2.4
  • 44. 07/25/12 Alexandru Ersenie - Load & Performance Testing for J2EE 44 MEMORY LEAK ? Used Memory increases as the number of live objects surviving collections increases (particularly under load) An increasing trend is not necessarily a memory leak. Objects can survive several collections (max threshold), and can be already dead, waiting for the old collector In test systems wait for several full garbage collections and build a trend line in order to see if a memory leak is showing Wait for a full garbage collection to see if the memory decreases Test systems can be provided with the option of manually triggering a garbage collection to see if objects are being released after the test is over 2.4 Monitoring Types – HEAP Monitoring
  • 45. 07/25/12 Alexandru Ersenie - Load & Performance Testing for J2EE 45 A full Garbage Collection goes over all generations, parsing the entire object structure to identify removable objects Usually the old generation is at least twice the size of the young generation Collection time for the old generation significantly increased (object tree parsed) Dead or marked for GC objects are removed Space is reclaimed Garbage Collection strategy of critical importance: Parallel or Concurrent GC NO LEAK 2.4 Monitoring Types – HEAP Monitoring
  • 46. 07/25/12 Alexandru Ersenie - Load & Performance Testing for J2EE 46 Objects that cannot be collected are moved to the old generation Old Garbage Collections cannot remove the objects; space cannot be reclaimed Total Heap used increases constantly Eventually the system performs only Garbage Collection Used Memory increases as the number of live objects surviving collections increases (particularly under load) The system is busy managing itself, instead of running your application Both throughput and response times affected Server restart is required MEMORY LEAK The right time to trigger a HEAP DUMP and see what objects are leaking ACTION 2.4 Monitoring Types – HEAP Monitoring
  • 47. 07/25/12 Alexandru Ersenie - Load & Performance Testing for J2EE 47 ACTIVE MONITORING OTHER MONITORS 2.5
  • 48. 07/25/12 Alexandru Ersenie - Load & Performance Testing for J2EE 48 User Profile Session Information File contents Caching shared data in a Hash Map Every request will want to acquire and hold the lock on the hash map, becoming a bottleneck Brian Goetz: Threading lightly : Reducing Contention Synchronized Methods One thread is executing a synchronized method for an object, all other threads that invoke synchronized methods for the same object block (suspend execution) until the first thread is done with the object. Java Tutorials - Concurrency Contention Threads can be monitored, and blocking or long running threads can be identified THREAD CONTENTION 2.5 Monitoring Types – Other Monitors
  • 49. 07/25/12 Alexandru Ersenie - Load & Performance Testing for J2EE 49 ^ Most often contention problems appear only under load, due to concurrency effects (more requests on the same object/method) The right time to trigger a thread dump and see the root cause of contention ACTION BEHAVIOR CPU usage drops dramatically, for it is busy with solving the locks instead of satisfying business requests Several threads in “Monitor” state, at the same time, indicate thread contention THREAD CONTENTION 2.5 Monitoring Types – Other Monitors
  • 50. 07/25/12 Alexandru Ersenie - Load & Performance Testing for J2EE 50 Allows quickly identifying blocked/blocking threads Lists all existing threads and their state when the thread dump was triggered Threads are listed together with their stack traces, allowing identifying of: What resource is being locked Who locks the resource? What is the locking thread doing? THREAD DUMPS 2.5 Monitoring Types – Other Monitors
  • 51. 07/25/12 Alexandru Ersenie - Load & Performance Testing for J2EE 51 THREAD DUMPS 2.5 Monitoring Types – Other Monitors Kill -3 PID : writes stack trace to jvm.log jvm.log can be imported into IBM Thread Analyzer
  • 52. 07/25/12 Alexandru Ersenie - Load & Performance Testing for J2EE 52 Actively monitor the number of JDBC resources in use, and other statistics like: ● Connections created ● Connections removed ● Connections in pool JDBC MONITORING Actively monitor the number of EJB Beans in cache and other statistics like: ● Cache hits ● Passivation statistics ● Number of beans created ● Number of beans removed EJB MONITORING Actively monitor the number of requests, and other statistics like: ● Error count ● Max request time WEB MONITORING 2.5 Monitoring Types – Other Monitors
  • 53. 07/25/12 Alexandru Ersenie - Load & Performance Testing for J2EE 53 Database Call on each Transaction – In this case each transaction checks if the user is valid, by creating and using a new JDBC Connection / check; 2.5 Monitoring Types – Case Study
  • 54. 07/25/12 Alexandru Ersenie - Load & Performance Testing for J2EE 54 TOOLS 3
  • 55. 07/25/12 Alexandru Ersenie - Load & Performance Testing for J2EE 55 3. Tools MONITORING VISUAL VM CheckJMX REST Interface System Interfaces PROCESSING PENTAHO Shell Scripts LOAD JMeter Shell Scripts REPORT DESIGN IReport REPORTS Jasper Reports HEAP ANALYSER MAT YourKit THREAD ANALYSER VisualVM IBM Thread Analyzer GARBAGE COLLECTION HP Jmeter PROFILING YourKit
  • 56. 07/25/12 Alexandru Ersenie - Load & Performance Testing for J2EE 56 THANK YOU FOR LISTENING ?