Step by Step Trouble Shooting"

From Documentation
Line 42: Line 42:
 
[[File:chrome_developer_tools_network_example_phases.jpg]]
 
[[File:chrome_developer_tools_network_example_phases.jpg]]
  
CONNECTING (or one of Proxy, DNS Lookup, Blocking, SSL)
+
'''CONNECTING''' (or one of Proxy, DNS Lookup, Blocking, SSL)
 
:'''3.a) Is this a network problem (everything between browser and ZK Application)?'''
 
:'''3.a) Is this a network problem (everything between browser and ZK Application)?'''
 
:*test ping / trace route to different servers
 
:*test ping / trace route to different servers
 
:*test dns lookup timing
 
:*test dns lookup timing
 
:YES → [[#Network Issue]]
 
:YES → [[#Network Issue]]
:NO → [[#Server Side Issue]] (application server responding slowly, or even times out)
+
:NO → [[#Server Side Issue]] (application takes long time to accept connection, or even times out)
  
SENDING
+
 
 +
'''SENDING'''
 
:'''3.b) Is the request unreasonably big?'''
 
:'''3.b) Is the request unreasonably big?'''
 
:YES → [[#Client Side Issue]]
 
:YES → [[#Client Side Issue]]
Line 56: Line 57:
 
:↓
 
:↓
  
:'''3.c)Is the bandwidth low?'''
+
:'''3.c) Is the bandwidth low?'''
 
:*e.g. try upload the same amount of data to the server via ftp/scp to check possible upload speed
 
:*e.g. try upload the same amount of data to the server via ftp/scp to check possible upload speed
 
:YES → [[#Network Issue]]
 
:YES → [[#Network Issue]]
:NO → [[#Server Side Issue]] (application server receiving slowly)
+
:NO → [[#Server Side Issue]] (application server receiving request data slowly)
  
WAITING → [[#Server Side Issue]] (application server taking long time to prepare response)
 
  
4. receiving
+
'''WAITING''' → [[#Server Side Issue]] (application server taking long time to prepare response)
Is the response unreasonably big?  
+
 
  --> check ROD (Render on Demand) settings
+
 
YES -> [[#Server Side Issue]]
+
'''RECEIVING'''
NO
+
:'''3.d) Is the response unreasonably big?'''
  Is the bandwidth low?  
+
:YES → check ROD (Render on Demand - settings), compression settings '''TODO config links'''
- try download the same amount of data from the server, e.g. ftp/scp, to check download speed
+
:NO
YES --> ask your administrator to fix it ;)
+
:↓
NO --> appserver writing slowly --> [[#Server Side Issue]]
+
:'''3.e) Is the bandwidth low?'''
 +
:*e.g.try to download the same amount of data from the server via ftp/scp to check download speed
 +
:YES → ask your administrator to fix it ;)
 +
:NO → [[#Server Side Issue]] (appserver sending response data slowly)
  
 
==Network Issue==
 
==Network Issue==

Revision as of 11:19, 17 September 2013

Performance SOP

Identify the Bottleneck

Usually the bottleneck can be found in one of these areas:

  • client
  • network
  • server

To breakdown a slow performing web application is a good idea to start, where the bad performance is perceived... in the browser. Most modern browsers provide very sophisticated tools to start the search for the bottleneck and draw some conclusions, and exclude other possible causes easily.

Dev tools (Network)
Chrome -> [F12]
Firefox -> [F12] or Firebug
IE9+ -> [F12]
IE8 -> fiddler2

File:Chrome developer tools network.jpg

Investigating the network traffic following the questions below the biggest problem area(s) should become apparent after a few minutes:

1. Are there one or more long running requests?

NO → #Client Side Issue

YES

2. Is it a static resource?

YES (js, css, images...) → check #ZK Server Configuration → STILL SLOW → #Network Issue

NO (dynamic request into ZK application)

  • *.zul = full page request (can be followed by ajax requests)
  • zkau/* = ajax request

3. Which PHASE of the request is slowest ? (examples based on Chrome developer tools)

File:Chrome developer tools network example phases.jpg

CONNECTING (or one of Proxy, DNS Lookup, Blocking, SSL)

3.a) Is this a network problem (everything between browser and ZK Application)?
  • test ping / trace route to different servers
  • test dns lookup timing
YES → #Network Issue
NO → #Server Side Issue (application takes long time to accept connection, or even times out)


SENDING

3.b) Is the request unreasonably big?
YES → #Client Side Issue
NO
3.c) Is the bandwidth low?
  • e.g. try upload the same amount of data to the server via ftp/scp to check possible upload speed
YES → #Network Issue
NO → #Server Side Issue (application server receiving request data slowly)


WAITING#Server Side Issue (application server taking long time to prepare response)


RECEIVING

3.d) Is the response unreasonably big?
YES → check ROD (Render on Demand - settings), compression settings TODO config links
NO
3.e) Is the bandwidth low?
  • e.g.try to download the same amount of data from the server via ftp/scp to check download speed
YES → ask your administrator to fix it ;)
NO → #Server Side Issue (appserver sending response data slowly)

Network Issue

not part of this SOP, ask your network administrator

Server Side Issue

Server Side Profiling

Memory Issue

ZK Server Configuration

  • TODO ??? maybe more tweaks ???

Client Side Issue

Client Side Profiling

Memory Issue