SlideShare a Scribd company logo
1 of 87
Download to read offline
Noch mehr Schweine und Schlangen
Neue Tipps zum Performance Troubleshooting
Rainer Schuppe
AppDynamics GmbH
Rainer
Customer Support
System Support / Ops
Consultant / Dev
Solution Architect
Sales Engineer

+Rainer Schuppe
Reprise:
Why care about performance
Where to start? What to do? Who to
blame?
Tooling
Usecases - Symptoms & Diagnostics
failure everyday
Complexity increases
Release 1.1
Release 1.2
Release 1.23
Tomcat Release 1.5

.NET

Amazon EC2
Windows Azure

CLOUD
Release 2.4
Release 2.5
Release 2.6
Release 3.0

Login
Search Flight
View Flight Status
Make Reservation

Tomcat

Mule, Tibco, AG
Tomcat

ESB

VMWare

WEB 2.0
Memcached
Weblogic
Release 1.4
Release 1.5
Release 1.6
Release 2.0

Browser Logic
AJAX
Web Frameworks

Oracle

Coherence
Hadoop
Cassandra
MongoDB

SOA

.NET
MQ

AGILE

Release 3.4
Release 3.5
Release 3.6
Release 4.0

SQL
Server

Release 4.4
Release 4.5
Release 4.6
Release 5.0

JBoss

Release 1.4
Release 1.5
Release 1.6
Release 2.0

ATG, Vignette,
Sharepoint

BIG DATA
Generic Troubleshooting Process
Alert / Detection

Rootcause
Detection

Triage

Diagnosis

Data /
Information
Solution
Finding

Move on with life

Fix
Triage
• Determine who needs to fix it
• Starts with overview and comparison to

„normal“ performance
• First level task (Operators)
• First indication of problem type
• Works best with transactional data
50 ms
.NET
10 ms Amazon EC2
60 ms
Windows Azure

Release 1.1
Release 1.2
Release 1.23
Tomcat Release 1.5

45,3 ms

CLOUD

50 ms
Release 2.4
Release 2.5
Release 2.6
Release 3.0

Login
Search Flight
View Flight Status
Make Reservation

Tomcat

145 Mule, Tibco, AG
ms
145 ms
ESB
145 ms
145 ms
10 ms

WEBms
100 2.0

Memcached

250 ms
Weblogic
Release 1.4
Release 1.5
Release 1.6
Release 2.0

Browser Logic
AJAX
Web Frameworks

300.NET
ms
300 ms
310 ms
AGILE

Release 3.4
Release 3.5
Release 3.6
Release 4.0

SQL
Server

150 ms
Tomcat
160 VMWare
ms
145 ms
Oracle

Release 4.4
Release 4.5
Release 4.6
Release 5.0

Coherence

SOA

1 MQ
ms
15 ms

250 ms
JBoss
Release 1.4
Release 1.5
Release 1.6
Release 2.0

ATG, Vignette,
Sharepoint

Hadoop
Cassandra
MongoDB

BIG DATA
Release 1.1
Release 1.2
Release 1.23
Tomcat Release 1.5

Pr

.NET

ob

lem

Amazon EC2
Windows Azure

CLOUD
Release 2.4
Release 2.5
Release 2.6
Release 3.0

Login
Search Flight
View Flight Status
Make Reservation

Tomcat

Mule, Tibco, AG
Tomcat

ESB

VMWare

WEB 2.0
Memcached
Weblogic
Release 1.4
Release 1.5
Release 1.6
Release 2.0

Browser Logic
AJAX
Web Frameworks

Oracle

Coherence
Hadoop
Cassandra
MongoDB

SOA

.NET
MQ

AGILE

Release 3.4
Release 3.5
Release 3.6
Release 4.0

SQL
Server

Release 4.4
Release 4.5
Release 4.6
Release 5.0

JBoss

Release 1.4
Release 1.5
Release 1.6
Release 2.0

ATG, Vignette,
Sharepoint

BIG DATA
Key:
= bad
= not bad
Diagnose
• Determine the root of the problem
• Uses first level information to narrow scope
• Needs specialists
• Lots of data / information needed in real time
and historical
• Usually needs iterations
• More than 1 tool used in the process
Rootcause detection
• Confirm the rootcause after you diagnosed it
• Document it
• Recreate it in test if possible
• Needs the same data as diagnostics
Solution finding
• Find a solution for the problem
• Architect a workaround or a fix
• Again needs the diagnostic data
• Run some test runs with different options check them in realtime
• Confirm the idea for the fix
• May be a different team then the trouble
shooters
How to get the data?
• Intuition
• Experience
• Tools
• Logfiles
• Communication
Tooling

© val-j - sxc.hu
3 Key Things Impact
Performance & Availability
Concurrency

Data Volume

Resource
Why do things crash and slow down?
Development

Concurrency

Data Volume

Resource

QA/Test

Concurrency Data Volume

Resource

Production

Concurrency

Data Volume

Resource
Technologies
Logging
ARM
Bytecode Instrumentation / Aspects
Sampling
JMX (Java Management Extensions)
PMI (IBM WebSphere specific)

Dev
Test
Prod
Logfiles
Pros:

Dev
Test
Prod

• Anything can be logged
• Easy to implement (if you have the sourcecode)
Cons:
• Only what the developer thinks is needed
• I/O heavy
• No chance for change if you don‘t own the
source code
• Lots of files - no TX context usually
• How to correlate in distributed environment?
Logfiles - 2
Logging can be the source of problems itself
e.g. Log4Net
• Synchronous local file system access
• The more you log the longer it takes
• Can only be diagnosed with another tool

Dev
Test
Prod
Bringing down production with Logging

Microsoft.Win32.Win32Native:SetFilePointerWin32
Logfiles - 4
[#|2013-04-16T16:04:44.319+0200|INFO|sun-appserver2.1|com.singularity.ee.controller.beans.ControllerManagerBean|
_ThreadID=14;_ThreadName=pool-1-thread-9;|Starting to initialize the Top Summary Stats Data Store timer|#]
[#|2013-04-16T16:04:44.335+0200|INFO|sun-appserver2.1|com.appdynamics.TOP.SUMMARY.STATS.WRITE|
_ThreadID=14;_ThreadName=pool-1-thread-9;|START TIME for timer service(TopSummaryStatsWriterTimerTaskBean) will be: Tue
Apr 16 16:05:00 CEST 2013|#]
[#|2013-04-16T16:04:44.338+0200|INFO|sun-appserver2.1|com.singularity.ee.controller.beans.ControllerManagerBean|
_ThreadID=14;_ThreadName=pool-1-thread-9;|Successfully initialized the Top Summary Stats Data Store timer|#]
[#|2013-04-16T16:04:44.338+0200|INFO|sun-appserver2.1|com.singularity.ee.controller.beans.ControllerManagerBean|
_ThreadID=14;_ThreadName=pool-1-thread-9;|Starting to initialize the Top Summary Stats Data Purger timer|#]
[#|2013-04-16T16:04:44.369+0200|INFO|sun-appserver2.1|com.singularity.ee.controller.beans.ControllerManagerBean|
_ThreadID=14;_ThreadName=pool-1-thread-9;|Successfully initialized the Top Summary Stats Data Purger timer|#]
[#|2013-04-16T16:04:44.369+0200|INFO|sun-appserver2.1|com.singularity.ee.controller.beans.ControllerManagerBean|
_ThreadID=14;_ThreadName=pool-1-thread-9;|Starting to initialize the Top Summary Stats Detail String cache timer|#]
[#|2013-04-16T16:04:44.376+0200|INFO|sun-appserver2.1|com.singularity.ee.controller.beans.ControllerManagerBean|
_ThreadID=14;_ThreadName=pool-1-thread-9;|Successfully initialized the Top Summary Stats Detail String cache timer|#]
[#|2013-04-16T16:04:44.376+0200|INFO|sun-appserver2.1|com.singularity.ee.controller.beans.ControllerManagerBean|
_ThreadID=14;_ThreadName=pool-1-thread-9;|Starting to initialize the Top Summary Stats rollup timer|#]
Profiler
Pros:

• No config needed
• Lots of data - lots of detail
Cons:
• Lots of data - not suitable for production
• Needs experience
• No transactional concept / context

Dev
Test
Profiler
JMX (and similar)
Pros:

•
•
•

Built into most application servers
JConsole is part of the JDK
Easy to implement MBeans

Cons:

•
•
•
•

No transaction context
Not available for 3rd party
No historical data
Usually one JVM only

Dev
Test
Prod
JMX (and similar)
APM tools (free)
Pros:

• They are free
• Transaction context (most of them)
• Quick setup (the commercial ones)

Dev
Test
Prod

Cons:
• Usually functionally constrained (commercial)
• Hard to configure (open source)
• Usually no history
Dev
APM tools (commercial) Test

Pros:

• Transactions, Historical data
• Distributed monitoring
• Deep dive diagnostics
• Production fit
Cons:
• Costly
• Choose the right one

Prod
Diagnosis
There are just 2 sorts of issues
© NLTeddy - sxc.hu
© ross666 - sxc.hu
50 shades of slow (appx.)
•
•
•
•
•
•

Constantly slow (Turtle)
Slowly, but constantly slower
Exponentially slower
Suddenly slower
Sporadically slow
Spontaneous crash
The wonderful world of errors
•
•
•
•
•
•

Sudden outage
Always erroneous
Sporadically Errormessages
Silent death / Bleed to death
Increasing errorrates
Wrong / meaningless error messages
Diagnosis – Rough Flow
Look at symptoms
Eliminate definite non-causes
Prioritize the suspicions
Confirm suspicion / Eliminate suspicion
• Compare with „normal“
• Gather more information
• Define root cause and confirm it
• Redo from Start
•
•
•
•
Possible Causes
(in no particular order)

•
•
•
•
•
•
•

Bad Coding
Too much load
Backend not reachable / slow
Conflicting resources
Memory Leak
Resource Leak
Network / Hardware Problem
Example
•
•
•

Resource Contention
Exceptions
Load Issues
Symptoms
•
•
•

User complaints - Slow performance
Exceptions appeared in logfiles
Alerts for ops triggered
Average Response Time (ms)
11.000

Connection Timeout

8.250

5.500

2.750

0

time

10:01 10:03 10:05 10:07 10:09 10:11 10:13 10:15 10:17 10:19 10:21 10:23 10:25 10:27 10:29
Connection Pool vs. Errors
15,00

org.hibernate.util.JDBCExceptionReporter : Cannot get a connection, pool error Timeout waiting for idle object

11,25

7,50

3,75

0
10:00

10:02

10:04

10:06

10:08

10:10

10:12

10:14

10:16

10:18

10:20

10:22

10:24

10:26

10:28

10:30
1st Diagnosis
•
•
•
•
•

OK - We do have a problem
Database connection pool depleted
Waiting times stacking
10 minutes until errors appear in logs
But WHY?
Open Questions
•
•
•
•
•

Which database?
Which DB Pool?
Transaction specific?
Problem on DB?
What is the load?
How to find data
•
•
•
•

Check log for DB connection info
Ask architect which TX are using this pool
Use JMX to check pool metrics
Check load info (if available)
Who else is using the DB?
Ask your architect!
Who else is using the DB?
Ask your tool!
What did we find out?
•
•

There were other TX‘s using the DB

•

This TX had a specific DB connection pool

It was just a single transaction with the DB
problem

OK - Now let‘s check the load
Load and DB connections
Trx/
min
Avg RT
Pool Limit
Pool Usage
Trx Stalls

Why the sudden load increase?
Root Cause
•
•

Loadbalancer was not working correctly

•

Many different pools made this config
necessary

DB connection pool size was not
appropriate for this load
The missing link

Release 1.1
Release 1.2
Release 1.23
Tomcat Release 1.5

.NET

Amazon EC2
Windows Azure

CLOUD
Release 2.4
Release 2.5
Release 2.6
Release 3.0

Login
Browser(s)
Purchase
Search Flight
Search Flight
Flight Flight
View Status Status
Login
Make Reservation
Native
Mobile
App

MOBILE

Tomcat

Mule, Tibco, AG
Tomcat

ESB

VMWare

WEB 2.0
Memcached
Weblogic

Network

Release 1.4
Release 1.5
Release 1.6
Release 2.0

Browser Logic
AJAX
Web Frameworks

Oracle

Coherence
Hadoop
Cassandra
MongoDB

SOA

.NET
MQ

AGILE

Release 3.4
Release 3.5
Release 3.6
Release 4.0

SQL
Server

Release 4.4
Release 4.5
Release 4.6
Release 5.0

JBoss

Release 1.4
Release 1.5
Release 1.6
Release 2.0

ATG, Vignette,
Sharepoint

BIG DATA
Enduser Monitoring helps
Complete the picture
A quick look at
memory
and resources
Linear Memory Leak
Symptoms:

•
•
•
•

OOM (Out of memory error)
Slow over time with spikes
Sawtooth with upward trend

• Causes
•
•

Objects added to linear structures without being removed
(e.g., linked lists)
Other API misuse (addListener() without corresponding
removeListener(), etc.)
Linear Memory Leak
Aggregate detection:

•
•
•

linear growth in heap utilization
GC time growth

Specific detection:

•
•
•
•

Figure out object types being leaked
Verbose GC
Find related APIs and search code for misuse
Linear Memory Leak
Challenges

•
•
•

References - many small objects are referenced in one
collection
Death by 1000 cuts (Papierschnitte)

Specific detection:

•
•
•
•

Figure out object types being leaked
Verbose GC
Find related APIs and search code for misuse
Specific detection
•
•
•
•
•
•

•
•
•

•

Heap Dump Comparison

Needs at least 2 dumps
Stops the JVM
Can take several minutes each
Creates tons of data
Finds the object, not the code responsible for the leak

Profiler

High overhead - not for production
Lots of data

APM Solution
•
•
•

Collection based algorithm – finds only collection leaks
Instance counting
Trade off between low overhead and usefulness of data
Exponential Memory Leak
Causes:
• Objects added to most data structures
without being removed (e.g., vectors,
hashtables)
• Other API misuse (as Linear Leak)
• Aggregate detection:
• exponential growth in heap
• Specific detection:
• Same as Linear Leak
•
Resource Leak
Causes:
• API misuse of Java objects with resourcestyle lifecycle (create->use->destroy)
• Aggregate detection:
• Slow over time
• Growth in heap (if you’re lucky)
• Specific detection:
• Audit code for API misuses
• Object instance tracking
•
Resource conflict (block / wait)
Resource conflict / blocking
•

•

•

Causes:
• Overcautious data integrity strategy
• Synchronising is always good
Aggregate detection:
• Stalled threads
• High thread usage - low CPU usage
Specific detection:
• Thread dumps as needed
• Stack traces / graphs
• CPU block / wait timing measurement
Fragen ?
Bad Coding: Infinite Loop
Causes:
• Infinite loop in code
• Aggregate detection:
• Stalled threads
• Permanently high usage of CPU / threads
• Specific detection:
• Thread dumps as needed
• Stack traces / graphs
•
Bad Coding: CPU-Bound Component
Causes:
• Idiot with a “Learn Java in 24 Hours” book
• Aggregate Detection:
• Response time measurement
• Aggregate CPU utilization
• Specific Detection:
• Detailed CPU utilization
• Typical Cure:
• Cache of data or of performed calculations
•
Layer-itis
Causes:

•
•
•

Poorly implemented data bridge layer, or simply
too many of them
DB -> XML -> XSLT -> More XML -> “Custom
Data Management Layer” -> Consumer

Aggregate Detection:

•
•

Response time measurements

Specific Detection:

•
•
•

Call graphs - Call trace (stack trace not
enough)
Ask for a design or architecture document
O/R Mapper misuse
Causes:

•
•
•
•

Hibernate fixes everything
Massive SQL statements (length and amount)
Wrong data strategy

Aggregate Detection:

•
•
•

Response time measurements
DB time measurements

Specific Detection:

•
•

Call stacks / snapshots
Caching issues
The Unending Retry
Causes:
• Continual attempts to call backend +
unavailable backend
• Aggregate Detection / Specific Detection:
• Response time measurement
• Backend detection - measurement (time
& # of calls)
• Stalled TX count
• Exceptions
• Busy thread count
•
don’t forget about thrown exceptions
Threading: Deadlock / Livelock
Causes:
• Fundamental error in threading / lock
acquisition strategy
• Aggregate Detection:
• Stalled threads / permanently high
concurrent usage
• Specific Detection:
• Deadlock detection in JVM
• Thread dumps
• Busy thread count
•
Threading: Deadlock
Found one Java-level deadlock:
=============================
"Thread-2":
  waiting to lock monitor 102054308 (object 7f3113800, a java.lang.Object),
  which is held by "Thread-1"
"Thread-1":
  waiting to lock monitor 1020348b8 (object 7f3113810, a java.lang.Object),
  which is held by "Thread-2"
 
Java stack information for the threads listed above:
===================================================
"Thread-2":
    at DeadlockTest$2.run(DeadlockTest.java:42)
    - waiting to lock <7f3113800> (a java.lang.Object)
    - locked <7f3113810> (a java.lang.Object)
    at java.lang.Thread.run(Thread.java:680)
"Thread-1":
    at DeadlockTest$1.run(DeadlockTest.java:26)
    - waiting to lock <7f3113810> (a java.lang.Object)
    - locked <7f3113800> (a java.lang.Object)
    at java.lang.Thread.run(Thread.java:680)
 
Threading: Chokepoint
Causes:
• Many threads bottlenecked waiting for
one lock
• Aggregate Detection:
• Stalled threads / high concurrent usage
• Exponential slowness
• Low CPU usage
• Specific Detection:
• Request response time monitoring
• CPU block / wait timing
•
Threading: Chokepoint
Internal Resource Bottleneck
•

•
•

•

•

•
•
•

Causes:

Overusage of internal resource (threads,
database connections, etc.)
Underallocation of same

Aggregate Detection:

Stalled threads / high concurrent usage
Call rate and average response time of internal
resource

Specific Detection:

Also compare with methods from Resource
Leak, External Bottleneck, and Overusage of
External System
External Bottleneck
Causes:

•
•
•

External system (database, authentication server) is
slow
Compare with Overusage of external system

Aggregate Detection:

•
•
•

Response time on backend calls
Exceptions

Specific Detection:

•
•
•

Callgraphs
Specific monitoring on those backends
Commit happy
Production Ground to a halt for 2 hours And again the next day

Trx/
min
Avg RT
Pool Limit
Pool Usage
Trx Stalls
Overusage of External System
Causes:

•
•
•

•
•

•
•
•

Poor design or tuning of interaction with backend system
(e.g., join between two million-row tables for each user
logon)
O/R mapper misconfiguration

Aggregate Detection:

Response time measurement

Specific Detection:

Timing on backend systems
Also need tools for those backend systems
excessive database access
query too much data
Applications will become more Complex and Change Faster

Distributed
Monolithic
AGILE

Release 1.1
Release 1.2
Release 1.23
Release 1.5

.NET Service

WebLogic Service

WEB 2.0

3rd Party Web
Service

ESB/MQ
Browser(s)

Purchase
Search Flight
Flight Status
Login

Native
Mobile
App

Oracle

CDN

Network

Apache

Sybase

NOSQL
JBoss Service

SOA

MySQL

Cassandra

PHP Service

Memcached

MOBILE

DB2

SQL Server
Tomcat Service
JBoss Service
VMWare
Private

Amazon EC2
Public

CLOUD

PostgreSQL

Hadoop

BIG DATA

Copyright © 2013 AppDynamics. All rights reserved.

86
•
•

One interesting problem occurs when the size of
transactions with backend systems needs to be tuned
Can be intertwined with / exacerbated by Layer-itis and
Overusage of External System

Many small requests
System constantly
wastes resources
dispatching /
unmarshalling many
xactions and results
“Death by a thousand
cuts”

“Just Right”
One HUGE request
System periodically
slows to a crawl as
many resources get
thrown at large
chunk of work
“Pig in a Python”

More Related Content

What's hot

opensource Monitoring Tool , an overview
opensource Monitoring Tool , an overviewopensource Monitoring Tool , an overview
opensource Monitoring Tool , an overviewKris Buytaert
 
2017 Q1 Arcticcon - Meet Up - Adventures in Adversarial Emulation
2017 Q1 Arcticcon - Meet Up - Adventures in Adversarial Emulation2017 Q1 Arcticcon - Meet Up - Adventures in Adversarial Emulation
2017 Q1 Arcticcon - Meet Up - Adventures in Adversarial EmulationScott Sutherland
 
Performance Tuning with Zabbix - Zabbix Conference 2014 - Andrew Nelson
Performance Tuning with Zabbix - Zabbix Conference 2014 - Andrew NelsonPerformance Tuning with Zabbix - Zabbix Conference 2014 - Andrew Nelson
Performance Tuning with Zabbix - Zabbix Conference 2014 - Andrew NelsonAndrew Nelson
 
Just enough web ops for web developers
Just enough web ops for web developersJust enough web ops for web developers
Just enough web ops for web developersDatadog
 
From 0 to 0xdeadbeef - security mistakes that will haunt your startup
From 0 to 0xdeadbeef - security mistakes that will haunt your startupFrom 0 to 0xdeadbeef - security mistakes that will haunt your startup
From 0 to 0xdeadbeef - security mistakes that will haunt your startupDiogo Mónica
 
How we sleep well at night using Hystrix at Finn.no
How we sleep well at night using Hystrix at Finn.noHow we sleep well at night using Hystrix at Finn.no
How we sleep well at night using Hystrix at Finn.noHenning Spjelkavik
 
Kscope 2013 delphix
Kscope 2013 delphixKscope 2013 delphix
Kscope 2013 delphixKyle Hailey
 
Automating Post Exploitation with PowerShell
Automating Post Exploitation with PowerShellAutomating Post Exploitation with PowerShell
Automating Post Exploitation with PowerShellEnclaveSecurity
 
10 Deadly Sins of SQL Server Configuration - APPSEC CALIFORNIA 2015
10 Deadly Sins of SQL Server Configuration - APPSEC CALIFORNIA 201510 Deadly Sins of SQL Server Configuration - APPSEC CALIFORNIA 2015
10 Deadly Sins of SQL Server Configuration - APPSEC CALIFORNIA 2015Scott Sutherland
 
44CON 2014 - I Hunt TR-069 Admins: Pwning ISPs Like a Boss, Shahar Tal
44CON 2014 - I Hunt TR-069 Admins: Pwning ISPs Like a Boss, Shahar Tal44CON 2014 - I Hunt TR-069 Admins: Pwning ISPs Like a Boss, Shahar Tal
44CON 2014 - I Hunt TR-069 Admins: Pwning ISPs Like a Boss, Shahar Tal44CON
 
How to WRAPS like Snoop Dogg
How to WRAPS like Snoop DoggHow to WRAPS like Snoop Dogg
How to WRAPS like Snoop DoggAlex Kim
 
Genomic Computation at Scale with Serverless, StackStorm and Docker Swarm
Genomic Computation at Scale with Serverless, StackStorm and Docker SwarmGenomic Computation at Scale with Serverless, StackStorm and Docker Swarm
Genomic Computation at Scale with Serverless, StackStorm and Docker SwarmDmitri Zimine
 
The Data Mullet: From all SQL to No SQL back to Some SQL
The Data Mullet: From all SQL to No SQL back to Some SQLThe Data Mullet: From all SQL to No SQL back to Some SQL
The Data Mullet: From all SQL to No SQL back to Some SQLDatadog
 
Laying the Foundation for Ionic Platform Insights on Spark
Laying the Foundation for Ionic Platform Insights on SparkLaying the Foundation for Ionic Platform Insights on Spark
Laying the Foundation for Ionic Platform Insights on SparkIonic Security
 
Automating Zero-Downtime Production Cluster Upgrades for Amazon ECS
Automating Zero-Downtime Production Cluster Upgrades for Amazon ECSAutomating Zero-Downtime Production Cluster Upgrades for Amazon ECS
Automating Zero-Downtime Production Cluster Upgrades for Amazon ECSMatt Callanan
 
Docker Cluster Management with ECS
Docker Cluster Management with ECSDocker Cluster Management with ECS
Docker Cluster Management with ECSMatt Callanan
 
How to Monitoring the SRE Golden Signals (E-Book)
How to Monitoring the SRE Golden Signals (E-Book)How to Monitoring the SRE Golden Signals (E-Book)
How to Monitoring the SRE Golden Signals (E-Book)Siglos
 
An Introduction to PowerShell for Security Assessments
An Introduction to PowerShell for Security AssessmentsAn Introduction to PowerShell for Security Assessments
An Introduction to PowerShell for Security AssessmentsEnclaveSecurity
 

What's hot (20)

Revoke-Obfuscation
Revoke-ObfuscationRevoke-Obfuscation
Revoke-Obfuscation
 
opensource Monitoring Tool , an overview
opensource Monitoring Tool , an overviewopensource Monitoring Tool , an overview
opensource Monitoring Tool , an overview
 
2017 Q1 Arcticcon - Meet Up - Adventures in Adversarial Emulation
2017 Q1 Arcticcon - Meet Up - Adventures in Adversarial Emulation2017 Q1 Arcticcon - Meet Up - Adventures in Adversarial Emulation
2017 Q1 Arcticcon - Meet Up - Adventures in Adversarial Emulation
 
Performance Tuning with Zabbix - Zabbix Conference 2014 - Andrew Nelson
Performance Tuning with Zabbix - Zabbix Conference 2014 - Andrew NelsonPerformance Tuning with Zabbix - Zabbix Conference 2014 - Andrew Nelson
Performance Tuning with Zabbix - Zabbix Conference 2014 - Andrew Nelson
 
Just enough web ops for web developers
Just enough web ops for web developersJust enough web ops for web developers
Just enough web ops for web developers
 
From 0 to 0xdeadbeef - security mistakes that will haunt your startup
From 0 to 0xdeadbeef - security mistakes that will haunt your startupFrom 0 to 0xdeadbeef - security mistakes that will haunt your startup
From 0 to 0xdeadbeef - security mistakes that will haunt your startup
 
How we sleep well at night using Hystrix at Finn.no
How we sleep well at night using Hystrix at Finn.noHow we sleep well at night using Hystrix at Finn.no
How we sleep well at night using Hystrix at Finn.no
 
Kscope 2013 delphix
Kscope 2013 delphixKscope 2013 delphix
Kscope 2013 delphix
 
Automating Post Exploitation with PowerShell
Automating Post Exploitation with PowerShellAutomating Post Exploitation with PowerShell
Automating Post Exploitation with PowerShell
 
10 Deadly Sins of SQL Server Configuration - APPSEC CALIFORNIA 2015
10 Deadly Sins of SQL Server Configuration - APPSEC CALIFORNIA 201510 Deadly Sins of SQL Server Configuration - APPSEC CALIFORNIA 2015
10 Deadly Sins of SQL Server Configuration - APPSEC CALIFORNIA 2015
 
44CON 2014 - I Hunt TR-069 Admins: Pwning ISPs Like a Boss, Shahar Tal
44CON 2014 - I Hunt TR-069 Admins: Pwning ISPs Like a Boss, Shahar Tal44CON 2014 - I Hunt TR-069 Admins: Pwning ISPs Like a Boss, Shahar Tal
44CON 2014 - I Hunt TR-069 Admins: Pwning ISPs Like a Boss, Shahar Tal
 
How to WRAPS like Snoop Dogg
How to WRAPS like Snoop DoggHow to WRAPS like Snoop Dogg
How to WRAPS like Snoop Dogg
 
Genomic Computation at Scale with Serverless, StackStorm and Docker Swarm
Genomic Computation at Scale with Serverless, StackStorm and Docker SwarmGenomic Computation at Scale with Serverless, StackStorm and Docker Swarm
Genomic Computation at Scale with Serverless, StackStorm and Docker Swarm
 
The Data Mullet: From all SQL to No SQL back to Some SQL
The Data Mullet: From all SQL to No SQL back to Some SQLThe Data Mullet: From all SQL to No SQL back to Some SQL
The Data Mullet: From all SQL to No SQL back to Some SQL
 
Laying the Foundation for Ionic Platform Insights on Spark
Laying the Foundation for Ionic Platform Insights on SparkLaying the Foundation for Ionic Platform Insights on Spark
Laying the Foundation for Ionic Platform Insights on Spark
 
Automating Zero-Downtime Production Cluster Upgrades for Amazon ECS
Automating Zero-Downtime Production Cluster Upgrades for Amazon ECSAutomating Zero-Downtime Production Cluster Upgrades for Amazon ECS
Automating Zero-Downtime Production Cluster Upgrades for Amazon ECS
 
Docker Cluster Management with ECS
Docker Cluster Management with ECSDocker Cluster Management with ECS
Docker Cluster Management with ECS
 
How to Monitoring the SRE Golden Signals (E-Book)
How to Monitoring the SRE Golden Signals (E-Book)How to Monitoring the SRE Golden Signals (E-Book)
How to Monitoring the SRE Golden Signals (E-Book)
 
Security events in 2014
Security events in 2014Security events in 2014
Security events in 2014
 
An Introduction to PowerShell for Security Assessments
An Introduction to PowerShell for Security AssessmentsAn Introduction to PowerShell for Security Assessments
An Introduction to PowerShell for Security Assessments
 

Viewers also liked

Web Globalization balanced by User Experience (Mensch und Computer 2008)
Web Globalization balanced by User Experience (Mensch und Computer 2008)Web Globalization balanced by User Experience (Mensch und Computer 2008)
Web Globalization balanced by User Experience (Mensch und Computer 2008)Rainer Gibbert
 
InDAgo -- Prototyping Smart Mobility Assistants
InDAgo -- Prototyping Smart Mobility AssistantsInDAgo -- Prototyping Smart Mobility Assistants
InDAgo -- Prototyping Smart Mobility AssistantsUID GmbH
 
USECON & Microsoft: Grundlagen des User Experience Designs fuer Windows Store...
USECON & Microsoft: Grundlagen des User Experience Designs fuer Windows Store...USECON & Microsoft: Grundlagen des User Experience Designs fuer Windows Store...
USECON & Microsoft: Grundlagen des User Experience Designs fuer Windows Store...USECON
 
Application Performance Troubleshooting 1x1 - Von Schweinen, Schlangen und Pa...
Application Performance Troubleshooting 1x1 - Von Schweinen, Schlangen und Pa...Application Performance Troubleshooting 1x1 - Von Schweinen, Schlangen und Pa...
Application Performance Troubleshooting 1x1 - Von Schweinen, Schlangen und Pa...rschuppe
 
Activty based research design for User Experience
Activty based research design for User ExperienceActivty based research design for User Experience
Activty based research design for User Experienceinnogy Innovation GmbH
 
Rethinking Mobile Learning and the Promise of Flying Cars
Rethinking Mobile Learning and the Promise of Flying CarsRethinking Mobile Learning and the Promise of Flying Cars
Rethinking Mobile Learning and the Promise of Flying CarsAndrew Smyk
 
IAK13 slideshare
IAK13 slideshareIAK13 slideshare
IAK13 slideshareTom Zahler
 
Journey to creating Alz.org UX Flowchart
Journey to creating Alz.org UX FlowchartJourney to creating Alz.org UX Flowchart
Journey to creating Alz.org UX FlowchartNegar Khalandi
 
Service Deisgn meets UX Design II
Service Deisgn meets UX Design IIService Deisgn meets UX Design II
Service Deisgn meets UX Design IIFranziska Semer
 
E-Commerce User Experience & Usability
E-Commerce User Experience & UsabilityE-Commerce User Experience & Usability
E-Commerce User Experience & UsabilityINM AG
 
Multi-Device User Experience
Multi-Device User ExperienceMulti-Device User Experience
Multi-Device User ExperienceGabriel White
 
Personas im Usability Engineering
Personas im Usability EngineeringPersonas im Usability Engineering
Personas im Usability EngineeringMichael Jendryschik
 
Zielgruppenanalyse: Segmentierungsvariablen
Zielgruppenanalyse: SegmentierungsvariablenZielgruppenanalyse: Segmentierungsvariablen
Zielgruppenanalyse: SegmentierungsvariablenTWT
 
Usability Kongress 2009: Card Sorting und dann? Oder wie man die Informations...
Usability Kongress 2009: Card Sorting und dann? Oder wie man die Informations...Usability Kongress 2009: Card Sorting und dann? Oder wie man die Informations...
Usability Kongress 2009: Card Sorting und dann? Oder wie man die Informations...Steffen Schilb
 
Managing Responsive Design Projects
Managing Responsive Design ProjectsManaging Responsive Design Projects
Managing Responsive Design ProjectsAndrew Smyk
 
Die Anwender im Fokus - User experience fühlen und messen
Die Anwender im Fokus - User experience fühlen und messenDie Anwender im Fokus - User experience fühlen und messen
Die Anwender im Fokus - User experience fühlen und messenrschuppe
 
Mobile User Experience: Entwicklung von benutzerfreundlichen mobilen Websites...
Mobile User Experience: Entwicklung von benutzerfreundlichen mobilen Websites...Mobile User Experience: Entwicklung von benutzerfreundlichen mobilen Websites...
Mobile User Experience: Entwicklung von benutzerfreundlichen mobilen Websites...usability.de
 
ux kundenworkshop
ux kundenworkshop ux kundenworkshop
ux kundenworkshop diana frank
 
Usability vs. User Experience vs. CRO - warum eigentlich nicht miteinander?
Usability vs. User Experience vs. CRO - warum eigentlich nicht miteinander?Usability vs. User Experience vs. CRO - warum eigentlich nicht miteinander?
Usability vs. User Experience vs. CRO - warum eigentlich nicht miteinander?TFT TIE Kinetix GmbH
 
User (Experience) Stories #iak13
User (Experience) Stories #iak13User (Experience) Stories #iak13
User (Experience) Stories #iak13Screamin Wrba
 

Viewers also liked (20)

Web Globalization balanced by User Experience (Mensch und Computer 2008)
Web Globalization balanced by User Experience (Mensch und Computer 2008)Web Globalization balanced by User Experience (Mensch und Computer 2008)
Web Globalization balanced by User Experience (Mensch und Computer 2008)
 
InDAgo -- Prototyping Smart Mobility Assistants
InDAgo -- Prototyping Smart Mobility AssistantsInDAgo -- Prototyping Smart Mobility Assistants
InDAgo -- Prototyping Smart Mobility Assistants
 
USECON & Microsoft: Grundlagen des User Experience Designs fuer Windows Store...
USECON & Microsoft: Grundlagen des User Experience Designs fuer Windows Store...USECON & Microsoft: Grundlagen des User Experience Designs fuer Windows Store...
USECON & Microsoft: Grundlagen des User Experience Designs fuer Windows Store...
 
Application Performance Troubleshooting 1x1 - Von Schweinen, Schlangen und Pa...
Application Performance Troubleshooting 1x1 - Von Schweinen, Schlangen und Pa...Application Performance Troubleshooting 1x1 - Von Schweinen, Schlangen und Pa...
Application Performance Troubleshooting 1x1 - Von Schweinen, Schlangen und Pa...
 
Activty based research design for User Experience
Activty based research design for User ExperienceActivty based research design for User Experience
Activty based research design for User Experience
 
Rethinking Mobile Learning and the Promise of Flying Cars
Rethinking Mobile Learning and the Promise of Flying CarsRethinking Mobile Learning and the Promise of Flying Cars
Rethinking Mobile Learning and the Promise of Flying Cars
 
IAK13 slideshare
IAK13 slideshareIAK13 slideshare
IAK13 slideshare
 
Journey to creating Alz.org UX Flowchart
Journey to creating Alz.org UX FlowchartJourney to creating Alz.org UX Flowchart
Journey to creating Alz.org UX Flowchart
 
Service Deisgn meets UX Design II
Service Deisgn meets UX Design IIService Deisgn meets UX Design II
Service Deisgn meets UX Design II
 
E-Commerce User Experience & Usability
E-Commerce User Experience & UsabilityE-Commerce User Experience & Usability
E-Commerce User Experience & Usability
 
Multi-Device User Experience
Multi-Device User ExperienceMulti-Device User Experience
Multi-Device User Experience
 
Personas im Usability Engineering
Personas im Usability EngineeringPersonas im Usability Engineering
Personas im Usability Engineering
 
Zielgruppenanalyse: Segmentierungsvariablen
Zielgruppenanalyse: SegmentierungsvariablenZielgruppenanalyse: Segmentierungsvariablen
Zielgruppenanalyse: Segmentierungsvariablen
 
Usability Kongress 2009: Card Sorting und dann? Oder wie man die Informations...
Usability Kongress 2009: Card Sorting und dann? Oder wie man die Informations...Usability Kongress 2009: Card Sorting und dann? Oder wie man die Informations...
Usability Kongress 2009: Card Sorting und dann? Oder wie man die Informations...
 
Managing Responsive Design Projects
Managing Responsive Design ProjectsManaging Responsive Design Projects
Managing Responsive Design Projects
 
Die Anwender im Fokus - User experience fühlen und messen
Die Anwender im Fokus - User experience fühlen und messenDie Anwender im Fokus - User experience fühlen und messen
Die Anwender im Fokus - User experience fühlen und messen
 
Mobile User Experience: Entwicklung von benutzerfreundlichen mobilen Websites...
Mobile User Experience: Entwicklung von benutzerfreundlichen mobilen Websites...Mobile User Experience: Entwicklung von benutzerfreundlichen mobilen Websites...
Mobile User Experience: Entwicklung von benutzerfreundlichen mobilen Websites...
 
ux kundenworkshop
ux kundenworkshop ux kundenworkshop
ux kundenworkshop
 
Usability vs. User Experience vs. CRO - warum eigentlich nicht miteinander?
Usability vs. User Experience vs. CRO - warum eigentlich nicht miteinander?Usability vs. User Experience vs. CRO - warum eigentlich nicht miteinander?
Usability vs. User Experience vs. CRO - warum eigentlich nicht miteinander?
 
User (Experience) Stories #iak13
User (Experience) Stories #iak13User (Experience) Stories #iak13
User (Experience) Stories #iak13
 

Similar to Application Performance Troubleshooting 1x1 - Part 2 - Noch mehr Schweine und Schlangen

DockerCon Europe 2018 Monitoring & Logging Workshop
DockerCon Europe 2018 Monitoring & Logging WorkshopDockerCon Europe 2018 Monitoring & Logging Workshop
DockerCon Europe 2018 Monitoring & Logging WorkshopBrian Christner
 
JavaOne 2015: Top Performance Patterns Deep Dive
JavaOne 2015: Top Performance Patterns Deep DiveJavaOne 2015: Top Performance Patterns Deep Dive
JavaOne 2015: Top Performance Patterns Deep DiveAndreas Grabner
 
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
 
Silicon Valley Code Camp 2015 - Advanced MongoDB - The Sequel
Silicon Valley Code Camp 2015 - Advanced MongoDB - The SequelSilicon Valley Code Camp 2015 - Advanced MongoDB - The Sequel
Silicon Valley Code Camp 2015 - Advanced MongoDB - The SequelDaniel Coupal
 
SharePoint 2013 Performance Analysis - Robi Vončina
SharePoint 2013 Performance Analysis - Robi VončinaSharePoint 2013 Performance Analysis - Robi Vončina
SharePoint 2013 Performance Analysis - Robi VončinaSPC Adriatics
 
How to address operational aspects effectively with Agile practices - Matthew...
How to address operational aspects effectively with Agile practices - Matthew...How to address operational aspects effectively with Agile practices - Matthew...
How to address operational aspects effectively with Agile practices - Matthew...Skelton Thatcher Consulting Ltd
 
End-to-end Troubleshooting Checklist for Microsoft SQL Server
End-to-end Troubleshooting Checklist for Microsoft SQL ServerEnd-to-end Troubleshooting Checklist for Microsoft SQL Server
End-to-end Troubleshooting Checklist for Microsoft SQL ServerKevin Kline
 
Sql azure cluster dashboard public.ppt
Sql azure cluster dashboard public.pptSql azure cluster dashboard public.ppt
Sql azure cluster dashboard public.pptQingsong Yao
 
Lessons Learned Replatforming A Large Machine Learning Application To Apache ...
Lessons Learned Replatforming A Large Machine Learning Application To Apache ...Lessons Learned Replatforming A Large Machine Learning Application To Apache ...
Lessons Learned Replatforming A Large Machine Learning Application To Apache ...Databricks
 
Observability with Spring-based distributed systems
Observability with Spring-based distributed systemsObservability with Spring-based distributed systems
Observability with Spring-based distributed systemsRakuten Group, Inc.
 
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
 
Benchmarking at Parse
Benchmarking at ParseBenchmarking at Parse
Benchmarking at ParseTravis Redman
 
Advanced Benchmarking at Parse
Advanced Benchmarking at ParseAdvanced Benchmarking at Parse
Advanced Benchmarking at ParseMongoDB
 
Building Real World Applications using Windows Azure - Scott Guthrie, 2nd Dec...
Building Real World Applications using Windows Azure - Scott Guthrie, 2nd Dec...Building Real World Applications using Windows Azure - Scott Guthrie, 2nd Dec...
Building Real World Applications using Windows Azure - Scott Guthrie, 2nd Dec...Vikas Sahni
 
Building azure applications ireland
Building azure applications irelandBuilding azure applications ireland
Building azure applications irelandMichael Meagher
 
Performance Analysis of Idle Programs
Performance Analysis of Idle ProgramsPerformance Analysis of Idle Programs
Performance Analysis of Idle Programsgreenwop
 
Become a Performance Diagnostics Hero
Become a Performance Diagnostics HeroBecome a Performance Diagnostics Hero
Become a Performance Diagnostics HeroTechWell
 
Performance Tuning in the Trenches
Performance Tuning in the TrenchesPerformance Tuning in the Trenches
Performance Tuning in the TrenchesDonald Belcham
 
Monitoring and Scaling Redis at DataDog - Ilan Rabinovitch, DataDog
 Monitoring and Scaling Redis at DataDog - Ilan Rabinovitch, DataDog Monitoring and Scaling Redis at DataDog - Ilan Rabinovitch, DataDog
Monitoring and Scaling Redis at DataDog - Ilan Rabinovitch, DataDogRedis Labs
 
6 tips for improving ruby performance
6 tips for improving ruby performance6 tips for improving ruby performance
6 tips for improving ruby performanceEngine Yard
 

Similar to Application Performance Troubleshooting 1x1 - Part 2 - Noch mehr Schweine und Schlangen (20)

DockerCon Europe 2018 Monitoring & Logging Workshop
DockerCon Europe 2018 Monitoring & Logging WorkshopDockerCon Europe 2018 Monitoring & Logging Workshop
DockerCon Europe 2018 Monitoring & Logging Workshop
 
JavaOne 2015: Top Performance Patterns Deep Dive
JavaOne 2015: Top Performance Patterns Deep DiveJavaOne 2015: Top Performance Patterns Deep Dive
JavaOne 2015: Top Performance Patterns Deep Dive
 
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
 
Silicon Valley Code Camp 2015 - Advanced MongoDB - The Sequel
Silicon Valley Code Camp 2015 - Advanced MongoDB - The SequelSilicon Valley Code Camp 2015 - Advanced MongoDB - The Sequel
Silicon Valley Code Camp 2015 - Advanced MongoDB - The Sequel
 
SharePoint 2013 Performance Analysis - Robi Vončina
SharePoint 2013 Performance Analysis - Robi VončinaSharePoint 2013 Performance Analysis - Robi Vončina
SharePoint 2013 Performance Analysis - Robi Vončina
 
How to address operational aspects effectively with Agile practices - Matthew...
How to address operational aspects effectively with Agile practices - Matthew...How to address operational aspects effectively with Agile practices - Matthew...
How to address operational aspects effectively with Agile practices - Matthew...
 
End-to-end Troubleshooting Checklist for Microsoft SQL Server
End-to-end Troubleshooting Checklist for Microsoft SQL ServerEnd-to-end Troubleshooting Checklist for Microsoft SQL Server
End-to-end Troubleshooting Checklist for Microsoft SQL Server
 
Sql azure cluster dashboard public.ppt
Sql azure cluster dashboard public.pptSql azure cluster dashboard public.ppt
Sql azure cluster dashboard public.ppt
 
Lessons Learned Replatforming A Large Machine Learning Application To Apache ...
Lessons Learned Replatforming A Large Machine Learning Application To Apache ...Lessons Learned Replatforming A Large Machine Learning Application To Apache ...
Lessons Learned Replatforming A Large Machine Learning Application To Apache ...
 
Observability with Spring-based distributed systems
Observability with Spring-based distributed systemsObservability with Spring-based distributed systems
Observability with Spring-based distributed systems
 
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
 
Benchmarking at Parse
Benchmarking at ParseBenchmarking at Parse
Benchmarking at Parse
 
Advanced Benchmarking at Parse
Advanced Benchmarking at ParseAdvanced Benchmarking at Parse
Advanced Benchmarking at Parse
 
Building Real World Applications using Windows Azure - Scott Guthrie, 2nd Dec...
Building Real World Applications using Windows Azure - Scott Guthrie, 2nd Dec...Building Real World Applications using Windows Azure - Scott Guthrie, 2nd Dec...
Building Real World Applications using Windows Azure - Scott Guthrie, 2nd Dec...
 
Building azure applications ireland
Building azure applications irelandBuilding azure applications ireland
Building azure applications ireland
 
Performance Analysis of Idle Programs
Performance Analysis of Idle ProgramsPerformance Analysis of Idle Programs
Performance Analysis of Idle Programs
 
Become a Performance Diagnostics Hero
Become a Performance Diagnostics HeroBecome a Performance Diagnostics Hero
Become a Performance Diagnostics Hero
 
Performance Tuning in the Trenches
Performance Tuning in the TrenchesPerformance Tuning in the Trenches
Performance Tuning in the Trenches
 
Monitoring and Scaling Redis at DataDog - Ilan Rabinovitch, DataDog
 Monitoring and Scaling Redis at DataDog - Ilan Rabinovitch, DataDog Monitoring and Scaling Redis at DataDog - Ilan Rabinovitch, DataDog
Monitoring and Scaling Redis at DataDog - Ilan Rabinovitch, DataDog
 
6 tips for improving ruby performance
6 tips for improving ruby performance6 tips for improving ruby performance
6 tips for improving ruby performance
 

Recently uploaded

Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...gurkirankumar98700
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 

Recently uploaded (20)

Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 

Application Performance Troubleshooting 1x1 - Part 2 - Noch mehr Schweine und Schlangen

  • 1. Noch mehr Schweine und Schlangen Neue Tipps zum Performance Troubleshooting Rainer Schuppe AppDynamics GmbH
  • 2. Rainer Customer Support System Support / Ops Consultant / Dev Solution Architect Sales Engineer +Rainer Schuppe
  • 3. Reprise: Why care about performance Where to start? What to do? Who to blame? Tooling Usecases - Symptoms & Diagnostics
  • 4.
  • 6. Complexity increases Release 1.1 Release 1.2 Release 1.23 Tomcat Release 1.5 .NET Amazon EC2 Windows Azure CLOUD Release 2.4 Release 2.5 Release 2.6 Release 3.0 Login Search Flight View Flight Status Make Reservation Tomcat Mule, Tibco, AG Tomcat ESB VMWare WEB 2.0 Memcached Weblogic Release 1.4 Release 1.5 Release 1.6 Release 2.0 Browser Logic AJAX Web Frameworks Oracle Coherence Hadoop Cassandra MongoDB SOA .NET MQ AGILE Release 3.4 Release 3.5 Release 3.6 Release 4.0 SQL Server Release 4.4 Release 4.5 Release 4.6 Release 5.0 JBoss Release 1.4 Release 1.5 Release 1.6 Release 2.0 ATG, Vignette, Sharepoint BIG DATA
  • 7. Generic Troubleshooting Process Alert / Detection Rootcause Detection Triage Diagnosis Data / Information Solution Finding Move on with life Fix
  • 8. Triage • Determine who needs to fix it • Starts with overview and comparison to „normal“ performance • First level task (Operators) • First indication of problem type • Works best with transactional data
  • 9. 50 ms .NET 10 ms Amazon EC2 60 ms Windows Azure Release 1.1 Release 1.2 Release 1.23 Tomcat Release 1.5 45,3 ms CLOUD 50 ms Release 2.4 Release 2.5 Release 2.6 Release 3.0 Login Search Flight View Flight Status Make Reservation Tomcat 145 Mule, Tibco, AG ms 145 ms ESB 145 ms 145 ms 10 ms WEBms 100 2.0 Memcached 250 ms Weblogic Release 1.4 Release 1.5 Release 1.6 Release 2.0 Browser Logic AJAX Web Frameworks 300.NET ms 300 ms 310 ms AGILE Release 3.4 Release 3.5 Release 3.6 Release 4.0 SQL Server 150 ms Tomcat 160 VMWare ms 145 ms Oracle Release 4.4 Release 4.5 Release 4.6 Release 5.0 Coherence SOA 1 MQ ms 15 ms 250 ms JBoss Release 1.4 Release 1.5 Release 1.6 Release 2.0 ATG, Vignette, Sharepoint Hadoop Cassandra MongoDB BIG DATA
  • 10. Release 1.1 Release 1.2 Release 1.23 Tomcat Release 1.5 Pr .NET ob lem Amazon EC2 Windows Azure CLOUD Release 2.4 Release 2.5 Release 2.6 Release 3.0 Login Search Flight View Flight Status Make Reservation Tomcat Mule, Tibco, AG Tomcat ESB VMWare WEB 2.0 Memcached Weblogic Release 1.4 Release 1.5 Release 1.6 Release 2.0 Browser Logic AJAX Web Frameworks Oracle Coherence Hadoop Cassandra MongoDB SOA .NET MQ AGILE Release 3.4 Release 3.5 Release 3.6 Release 4.0 SQL Server Release 4.4 Release 4.5 Release 4.6 Release 5.0 JBoss Release 1.4 Release 1.5 Release 1.6 Release 2.0 ATG, Vignette, Sharepoint BIG DATA
  • 12. Diagnose • Determine the root of the problem • Uses first level information to narrow scope • Needs specialists • Lots of data / information needed in real time and historical • Usually needs iterations • More than 1 tool used in the process
  • 13. Rootcause detection • Confirm the rootcause after you diagnosed it • Document it • Recreate it in test if possible • Needs the same data as diagnostics
  • 14. Solution finding • Find a solution for the problem • Architect a workaround or a fix • Again needs the diagnostic data • Run some test runs with different options check them in realtime • Confirm the idea for the fix • May be a different team then the trouble shooters
  • 15. How to get the data? • Intuition • Experience • Tools • Logfiles • Communication
  • 17. 3 Key Things Impact Performance & Availability Concurrency Data Volume Resource
  • 18. Why do things crash and slow down? Development Concurrency Data Volume Resource QA/Test Concurrency Data Volume Resource Production Concurrency Data Volume Resource
  • 19. Technologies Logging ARM Bytecode Instrumentation / Aspects Sampling JMX (Java Management Extensions) PMI (IBM WebSphere specific) Dev Test Prod
  • 20. Logfiles Pros: Dev Test Prod • Anything can be logged • Easy to implement (if you have the sourcecode) Cons: • Only what the developer thinks is needed • I/O heavy • No chance for change if you don‘t own the source code • Lots of files - no TX context usually • How to correlate in distributed environment?
  • 21. Logfiles - 2 Logging can be the source of problems itself e.g. Log4Net • Synchronous local file system access • The more you log the longer it takes • Can only be diagnosed with another tool Dev Test Prod
  • 22. Bringing down production with Logging Microsoft.Win32.Win32Native:SetFilePointerWin32
  • 23. Logfiles - 4 [#|2013-04-16T16:04:44.319+0200|INFO|sun-appserver2.1|com.singularity.ee.controller.beans.ControllerManagerBean| _ThreadID=14;_ThreadName=pool-1-thread-9;|Starting to initialize the Top Summary Stats Data Store timer|#] [#|2013-04-16T16:04:44.335+0200|INFO|sun-appserver2.1|com.appdynamics.TOP.SUMMARY.STATS.WRITE| _ThreadID=14;_ThreadName=pool-1-thread-9;|START TIME for timer service(TopSummaryStatsWriterTimerTaskBean) will be: Tue Apr 16 16:05:00 CEST 2013|#] [#|2013-04-16T16:04:44.338+0200|INFO|sun-appserver2.1|com.singularity.ee.controller.beans.ControllerManagerBean| _ThreadID=14;_ThreadName=pool-1-thread-9;|Successfully initialized the Top Summary Stats Data Store timer|#] [#|2013-04-16T16:04:44.338+0200|INFO|sun-appserver2.1|com.singularity.ee.controller.beans.ControllerManagerBean| _ThreadID=14;_ThreadName=pool-1-thread-9;|Starting to initialize the Top Summary Stats Data Purger timer|#] [#|2013-04-16T16:04:44.369+0200|INFO|sun-appserver2.1|com.singularity.ee.controller.beans.ControllerManagerBean| _ThreadID=14;_ThreadName=pool-1-thread-9;|Successfully initialized the Top Summary Stats Data Purger timer|#] [#|2013-04-16T16:04:44.369+0200|INFO|sun-appserver2.1|com.singularity.ee.controller.beans.ControllerManagerBean| _ThreadID=14;_ThreadName=pool-1-thread-9;|Starting to initialize the Top Summary Stats Detail String cache timer|#] [#|2013-04-16T16:04:44.376+0200|INFO|sun-appserver2.1|com.singularity.ee.controller.beans.ControllerManagerBean| _ThreadID=14;_ThreadName=pool-1-thread-9;|Successfully initialized the Top Summary Stats Detail String cache timer|#] [#|2013-04-16T16:04:44.376+0200|INFO|sun-appserver2.1|com.singularity.ee.controller.beans.ControllerManagerBean| _ThreadID=14;_ThreadName=pool-1-thread-9;|Starting to initialize the Top Summary Stats rollup timer|#]
  • 24. Profiler Pros: • No config needed • Lots of data - lots of detail Cons: • Lots of data - not suitable for production • Needs experience • No transactional concept / context Dev Test
  • 26. JMX (and similar) Pros: • • • Built into most application servers JConsole is part of the JDK Easy to implement MBeans Cons: • • • • No transaction context Not available for 3rd party No historical data Usually one JVM only Dev Test Prod
  • 28. APM tools (free) Pros: • They are free • Transaction context (most of them) • Quick setup (the commercial ones) Dev Test Prod Cons: • Usually functionally constrained (commercial) • Hard to configure (open source) • Usually no history
  • 29. Dev APM tools (commercial) Test Pros: • Transactions, Historical data • Distributed monitoring • Deep dive diagnostics • Production fit Cons: • Costly • Choose the right one Prod
  • 30. Diagnosis There are just 2 sorts of issues
  • 31. © NLTeddy - sxc.hu
  • 32. © ross666 - sxc.hu
  • 33. 50 shades of slow (appx.) • • • • • • Constantly slow (Turtle) Slowly, but constantly slower Exponentially slower Suddenly slower Sporadically slow Spontaneous crash
  • 34. The wonderful world of errors • • • • • • Sudden outage Always erroneous Sporadically Errormessages Silent death / Bleed to death Increasing errorrates Wrong / meaningless error messages
  • 35. Diagnosis – Rough Flow Look at symptoms Eliminate definite non-causes Prioritize the suspicions Confirm suspicion / Eliminate suspicion • Compare with „normal“ • Gather more information • Define root cause and confirm it • Redo from Start • • • •
  • 36. Possible Causes (in no particular order) • • • • • • • Bad Coding Too much load Backend not reachable / slow Conflicting resources Memory Leak Resource Leak Network / Hardware Problem
  • 38. Symptoms • • • User complaints - Slow performance Exceptions appeared in logfiles Alerts for ops triggered
  • 39. Average Response Time (ms) 11.000 Connection Timeout 8.250 5.500 2.750 0 time 10:01 10:03 10:05 10:07 10:09 10:11 10:13 10:15 10:17 10:19 10:21 10:23 10:25 10:27 10:29
  • 40. Connection Pool vs. Errors 15,00 org.hibernate.util.JDBCExceptionReporter : Cannot get a connection, pool error Timeout waiting for idle object 11,25 7,50 3,75 0 10:00 10:02 10:04 10:06 10:08 10:10 10:12 10:14 10:16 10:18 10:20 10:22 10:24 10:26 10:28 10:30
  • 41. 1st Diagnosis • • • • • OK - We do have a problem Database connection pool depleted Waiting times stacking 10 minutes until errors appear in logs But WHY?
  • 42. Open Questions • • • • • Which database? Which DB Pool? Transaction specific? Problem on DB? What is the load?
  • 43. How to find data • • • • Check log for DB connection info Ask architect which TX are using this pool Use JMX to check pool metrics Check load info (if available)
  • 44.
  • 45.
  • 46. Who else is using the DB? Ask your architect!
  • 47. Who else is using the DB? Ask your tool!
  • 48. What did we find out? • • There were other TX‘s using the DB • This TX had a specific DB connection pool It was just a single transaction with the DB problem OK - Now let‘s check the load
  • 49. Load and DB connections Trx/ min Avg RT Pool Limit Pool Usage Trx Stalls Why the sudden load increase?
  • 50. Root Cause • • Loadbalancer was not working correctly • Many different pools made this config necessary DB connection pool size was not appropriate for this load
  • 51. The missing link Release 1.1 Release 1.2 Release 1.23 Tomcat Release 1.5 .NET Amazon EC2 Windows Azure CLOUD Release 2.4 Release 2.5 Release 2.6 Release 3.0 Login Browser(s) Purchase Search Flight Search Flight Flight Flight View Status Status Login Make Reservation Native Mobile App MOBILE Tomcat Mule, Tibco, AG Tomcat ESB VMWare WEB 2.0 Memcached Weblogic Network Release 1.4 Release 1.5 Release 1.6 Release 2.0 Browser Logic AJAX Web Frameworks Oracle Coherence Hadoop Cassandra MongoDB SOA .NET MQ AGILE Release 3.4 Release 3.5 Release 3.6 Release 4.0 SQL Server Release 4.4 Release 4.5 Release 4.6 Release 5.0 JBoss Release 1.4 Release 1.5 Release 1.6 Release 2.0 ATG, Vignette, Sharepoint BIG DATA
  • 54. A quick look at memory and resources
  • 55. Linear Memory Leak Symptoms: • • • • OOM (Out of memory error) Slow over time with spikes Sawtooth with upward trend • Causes • • Objects added to linear structures without being removed (e.g., linked lists) Other API misuse (addListener() without corresponding removeListener(), etc.)
  • 56. Linear Memory Leak Aggregate detection: • • • linear growth in heap utilization GC time growth Specific detection: • • • • Figure out object types being leaked Verbose GC Find related APIs and search code for misuse
  • 57. Linear Memory Leak Challenges • • • References - many small objects are referenced in one collection Death by 1000 cuts (Papierschnitte) Specific detection: • • • • Figure out object types being leaked Verbose GC Find related APIs and search code for misuse
  • 58. Specific detection • • • • • • • • • • Heap Dump Comparison Needs at least 2 dumps Stops the JVM Can take several minutes each Creates tons of data Finds the object, not the code responsible for the leak Profiler High overhead - not for production Lots of data APM Solution • • • Collection based algorithm – finds only collection leaks Instance counting Trade off between low overhead and usefulness of data
  • 59.
  • 60.
  • 61.
  • 62.
  • 63. Exponential Memory Leak Causes: • Objects added to most data structures without being removed (e.g., vectors, hashtables) • Other API misuse (as Linear Leak) • Aggregate detection: • exponential growth in heap • Specific detection: • Same as Linear Leak •
  • 64. Resource Leak Causes: • API misuse of Java objects with resourcestyle lifecycle (create->use->destroy) • Aggregate detection: • Slow over time • Growth in heap (if you’re lucky) • Specific detection: • Audit code for API misuses • Object instance tracking •
  • 66. Resource conflict / blocking • • • Causes: • Overcautious data integrity strategy • Synchronising is always good Aggregate detection: • Stalled threads • High thread usage - low CPU usage Specific detection: • Thread dumps as needed • Stack traces / graphs • CPU block / wait timing measurement
  • 68. Bad Coding: Infinite Loop Causes: • Infinite loop in code • Aggregate detection: • Stalled threads • Permanently high usage of CPU / threads • Specific detection: • Thread dumps as needed • Stack traces / graphs •
  • 69. Bad Coding: CPU-Bound Component Causes: • Idiot with a “Learn Java in 24 Hours” book • Aggregate Detection: • Response time measurement • Aggregate CPU utilization • Specific Detection: • Detailed CPU utilization • Typical Cure: • Cache of data or of performed calculations •
  • 70. Layer-itis Causes: • • • Poorly implemented data bridge layer, or simply too many of them DB -> XML -> XSLT -> More XML -> “Custom Data Management Layer” -> Consumer Aggregate Detection: • • Response time measurements Specific Detection: • • • Call graphs - Call trace (stack trace not enough) Ask for a design or architecture document
  • 71. O/R Mapper misuse Causes: • • • • Hibernate fixes everything Massive SQL statements (length and amount) Wrong data strategy Aggregate Detection: • • • Response time measurements DB time measurements Specific Detection: • • Call stacks / snapshots
  • 73. The Unending Retry Causes: • Continual attempts to call backend + unavailable backend • Aggregate Detection / Specific Detection: • Response time measurement • Backend detection - measurement (time & # of calls) • Stalled TX count • Exceptions • Busy thread count •
  • 74. don’t forget about thrown exceptions
  • 75. Threading: Deadlock / Livelock Causes: • Fundamental error in threading / lock acquisition strategy • Aggregate Detection: • Stalled threads / permanently high concurrent usage • Specific Detection: • Deadlock detection in JVM • Thread dumps • Busy thread count •
  • 76. Threading: Deadlock Found one Java-level deadlock: ============================= "Thread-2":   waiting to lock monitor 102054308 (object 7f3113800, a java.lang.Object),   which is held by "Thread-1" "Thread-1":   waiting to lock monitor 1020348b8 (object 7f3113810, a java.lang.Object),   which is held by "Thread-2"   Java stack information for the threads listed above: =================================================== "Thread-2":     at DeadlockTest$2.run(DeadlockTest.java:42)     - waiting to lock <7f3113800> (a java.lang.Object)     - locked <7f3113810> (a java.lang.Object)     at java.lang.Thread.run(Thread.java:680) "Thread-1":     at DeadlockTest$1.run(DeadlockTest.java:26)     - waiting to lock <7f3113810> (a java.lang.Object)     - locked <7f3113800> (a java.lang.Object)     at java.lang.Thread.run(Thread.java:680)  
  • 77. Threading: Chokepoint Causes: • Many threads bottlenecked waiting for one lock • Aggregate Detection: • Stalled threads / high concurrent usage • Exponential slowness • Low CPU usage • Specific Detection: • Request response time monitoring • CPU block / wait timing •
  • 79. Internal Resource Bottleneck • • • • • • • • Causes: Overusage of internal resource (threads, database connections, etc.) Underallocation of same Aggregate Detection: Stalled threads / high concurrent usage Call rate and average response time of internal resource Specific Detection: Also compare with methods from Resource Leak, External Bottleneck, and Overusage of External System
  • 80. External Bottleneck Causes: • • • External system (database, authentication server) is slow Compare with Overusage of external system Aggregate Detection: • • • Response time on backend calls Exceptions Specific Detection: • • • Callgraphs Specific monitoring on those backends
  • 82. Production Ground to a halt for 2 hours And again the next day Trx/ min Avg RT Pool Limit Pool Usage Trx Stalls
  • 83. Overusage of External System Causes: • • • • • • • • Poor design or tuning of interaction with backend system (e.g., join between two million-row tables for each user logon) O/R mapper misconfiguration Aggregate Detection: Response time measurement Specific Detection: Timing on backend systems Also need tools for those backend systems
  • 86. Applications will become more Complex and Change Faster Distributed Monolithic AGILE Release 1.1 Release 1.2 Release 1.23 Release 1.5 .NET Service WebLogic Service WEB 2.0 3rd Party Web Service ESB/MQ Browser(s) Purchase Search Flight Flight Status Login Native Mobile App Oracle CDN Network Apache Sybase NOSQL JBoss Service SOA MySQL Cassandra PHP Service Memcached MOBILE DB2 SQL Server Tomcat Service JBoss Service VMWare Private Amazon EC2 Public CLOUD PostgreSQL Hadoop BIG DATA Copyright © 2013 AppDynamics. All rights reserved. 86
  • 87. • • One interesting problem occurs when the size of transactions with backend systems needs to be tuned Can be intertwined with / exacerbated by Layer-itis and Overusage of External System Many small requests System constantly wastes resources dispatching / unmarshalling many xactions and results “Death by a thousand cuts” “Just Right” One HUGE request System periodically slows to a crawl as many resources get thrown at large chunk of work “Pig in a Python”