Step by Step Trouble Shooting"

From Documentation
m (Created page with "=Performance SOP= ==Identify the Bottleneck== Usually the bottleneck can be found in one of these areas: * network * server * client To breakdown a slow performing web applica...")
 
m
Line 4: Line 4:
  
 
Usually the bottleneck can be found in one of these areas:
 
Usually the bottleneck can be found in one of these areas:
 +
* client
 
* network
 
* network
 
* server
 
* server
* client
 
  
 
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.  
 
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.  
Line 18: Line 18:
 
[[File:chrome_developer_tools_network.jpg]]
 
[[File:chrome_developer_tools_network.jpg]]
  
After a few minutes the biggest problem area should become clear, following the questions below:
+
After a few minutes the biggest problem area(s) should become apparent, following the questions below:
 
 
  
Is there is one or more long running requests?
+
Are there one or more excessively long running requests?
  
NO --> client side
+
NO --> [[#Client Side Issue]]
  
 
YES -->
 
YES -->
Line 49: Line 48:
 
network (based on Chrome Developer tools -> Network -> Timing)
 
network (based on Chrome Developer tools -> Network -> Timing)
 
  1. connecting (Proxy, DNS Lookup, Blocking, SSL)
 
  1. connecting (Proxy, DNS Lookup, Blocking, SSL)
   - slow proxy/DNS/Blocking/SSL/ (client -> proxy -> webserver/firewall -> appserver) = network or server side problem
+
   - slow proxy/DNS/Blocking/SSL/ (client -> proxy -> webserver/firewall -> appserver) = network or [[#Server Side Issue]]
  
 
Is this a network problem (everything between browser and ZK Application)?
 
Is this a network problem (everything between browser and ZK Application)?
Line 56: Line 55:
 
YES --> ask your administrator to fix it ;)
 
YES --> ask your administrator to fix it ;)
  
NO = appserver responding slowly --> server side problem
+
NO = application server responding slowly --> [[#Server Side Issue]]
  
 
  2. sending
 
  2. sending
Line 65: Line 64:
 
- try upload the same amount of data to the server, e.g. ftp/scp, to check upload speed
 
- try upload the same amount of data to the server, e.g. ftp/scp, to check upload speed
 
YES --> ask your administrator to fix it ;)
 
YES --> ask your administrator to fix it ;)
NO --> appserver reading slowly --> server side problem
+
NO --> application server reading slowly --> [[#Server Side Issue]]
  
 
  3. waiting
 
  3. waiting
Line 73: Line 72:
 
Is the response unreasonably big?  
 
Is the response unreasonably big?  
 
  --> check ROD (Render on Demand) settings
 
  --> check ROD (Render on Demand) settings
YES -> server side problem
+
YES -> [[#Server Side Issue]]
 
NO
 
NO
 
   Is the bandwidth low?  
 
   Is the bandwidth low?  
 
- try download the same amount of data from the server, e.g. ftp/scp, to check download speed
 
- try download the same amount of data from the server, e.g. ftp/scp, to check download speed
 
YES --> ask your administrator to fix it ;)
 
YES --> ask your administrator to fix it ;)
NO --> appserver writing slowly --> server side problem
+
NO --> appserver writing slowly --> [[#Server Side Issue]]
  
  
 
==Network Issue==
 
==Network Issue==
  
 +
not part of this SOP, ask your network administrator
  
 
==Server Side Issue==
 
==Server Side Issue==
  
======
+
===Server Side Profiling===
 
 
===Profiling===
 
  
 
===Memory Issue===
 
===Memory Issue===
Line 94: Line 92:
 
==Client Side Issue==
 
==Client Side Issue==
  
===Profiling===
+
===Client Side Profiling===
 +
 
 +
===Memory Issue===

Revision as of 10:15, 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] / Firebug
IE>9 [F12]
fiddler2 TODO

File:Chrome developer tools network.jpg

After a few minutes the biggest problem area(s) should become apparent, following the questions below:

Are there one or more excessively long running requests?

NO --> #Client Side Issue

YES -->

Is it a static resource?

YES (js, css, images ...) --> check debug mode zk config (disabled by default) http://books.zkoss.org/wiki/ZK_Configuration_Reference/zk.xml/The_client-config_Element/The_debug-js_Element --> check caching config (enabled by default) http://books.zkoss.org/wiki/ZK_Configuration_Reference/zk.xml/The_Library_Properties/org.zkoss.web.classWebResource.cache http://books.zkoss.org/wiki/ZK_Configuration_Reference/zk.xml/The_Library_Properties/org.zkoss.zk.WPD.cache http://books.zkoss.org/wiki/ZK_Configuration_Reference/zk.xml/The_Library_Properties/org.zkoss.zk.WCS.cache

??? maybe more tweaks ???

--> NONE of these --> network

NO dynamic request

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

Which stage of the request is slow ?

network (based on Chrome Developer tools -> Network -> Timing)

1. connecting (Proxy, DNS Lookup, Blocking, SSL)
 - slow proxy/DNS/Blocking/SSL/ (client -> proxy -> webserver/firewall -> appserver) = network or #Server Side Issue

Is this a network problem (everything between browser and ZK Application)? -> test ping / trace route to different servers -> test dns lookup timing YES --> ask your administrator to fix it ;)

NO = application server responding slowly --> #Server Side Issue

2. sending

Is the request unreasonably big? YES -> client side problem NO

  	Is the bandwidth low? 

- try upload the same amount of data to the server, e.g. ftp/scp, to check upload speed YES --> ask your administrator to fix it ;) NO --> application server reading slowly --> #Server Side Issue

3. waiting
  --> server side problem
4. receiving

Is the response unreasonably big? --> check ROD (Render on Demand) settings YES -> #Server Side Issue NO

  	Is the bandwidth low? 

- try download the same amount of data from the server, e.g. ftp/scp, to check download speed YES --> ask your administrator to fix it ;) NO --> appserver writing slowly --> #Server Side Issue


Network Issue

not part of this SOP, ask your network administrator

Server Side Issue

Server Side Profiling

Memory Issue

Client Side Issue

Client Side Profiling

Memory Issue