Untitled Document
Table of contents | Previous
Tuning Considerations for your WCM site
The following article discusses an approach, together with specific tools
for measuring and improving the performance of your Lotus Web Content
Management site. We discuss specific recommendations and results within the
context of our sample site - RiverBe
nd Tea and Coffee Company.
- Establish metrics: performance testing and optimization can potentially
never end. To avoid that, ensure that all the people involved agree about what
should be considered a good result before to start. This usually is achieved by
defining three values:
- Maximum response time
- Minimum responses per second at that time
- Maximum CPU usage at that time
- Perform a basic optimization of your systems:
- This includes web servers, application servers, Portal Server and WCM
instances and databases
- Basic optimizations like the ones described in (4) shouldn't require
lots of time and skills and will ensure more real results for your tests.
- Optimize page load time:
- Performance testing is an expensive process. Before you start,
recheck all the pages that you will test for elements that may impact
negatively in the results.
- Broken links, resources loaded from external URLs or JSP components
can be considered “usual suspects”
- If page load time still doesn't match your expectations check again
with your development team what performance improvements can be done
- Run performance tests:
- Create a test script that simulates a real use case
- Run tests increasing amount of users and monitor response time and
numbers of request per second. This will give them what is the maximum amount
of users that the system will support while keeping the response time under the
maximum response time.
- Check the CPU usage during every time both in the load generator and
in the WCM server.
- Activate different cache types

- Caching in WCM can be performed at three different levels:
- Web server: using a caching proxy module part of Websphere Edge
components
- Application Server: using WebSphere Servlet Caching to storage the
responses generated by the WCM servlet or portlets for future users
- WCM: elements can be cached on WCM reducing the number of database
calls
- Activate WCM cache and re-run the tests
- Activate Servlet cache and re-run the tests
- Analyze your results
- Build tables and graphs with the results and analyze them. If any
result doesn't sound right repeat that test to ensure your data doesn't contain
exceptions.
- Repeat this optimization / test process until the results match your
expectations.
- Move your system to production and ensure that those results will be
maintained in the production environment in situations like:
- Database growths with historical data and versions
- Other server tasks like full text indexing or syndication are running
- New functionality is added to the site
- Use a web analytics tool to monitor the real use of your production
server. Check that parameters follow the service indicators you defined at the
start of the process.
Tools for tuning River Bend web site
The following tools were used in testing the River Bend site. Each of these
tools is described in detail below.
- Page analyzer: graphical tool that enables Web system
administrators to measure client side performance of Web pages.
- Load generator: define or record a navigation path and
simulate the load of a certain number of users accessing a server by repeating
that pattern for a certain number of times concurrently.
- Cache monitor: for displaying and deleting cache
contents during the test process.
- Page analytics: saves historical navigation data to
match real system behavior with the expected results.
Page analyzer
Page analyzers are tools that allow developers and administrators to
investigate how a certain page will be loaded in the user's browser in order to
detect performance or design defects.
Most of these tools uses a time-line paradigm, they show an horizontal line
that represents the overall page load and decomposes it to show how individual
items are loaded.
Firebug (http://getfirebug.com/) is one
of the most popular Firefox plug-ins among web site developers. Firebug
provides a powerful set of tools that include a Javascript console and
debugger, a DOM inspector, a CSS editor and a page load analyzer.
Firebug page analyzer shows the page load process in a graphical way. Each
request is displayed as an independent horizontal bar that represents its load
time. Firebug displays even AJAX requests that are thrown after the page have
been loaded.
For complex pages, Firebug allow developers to filter the request that are
displayed by their type: HTML, CSS, JS, AJAX, Images and Flash.

Firebug can display detailed information about a request including request
parameters, headers and response data.

One alternative to Firebug is IBM PageDetailer (
http://w3.alphaworks.ibm.com/tech/pagedetailer ):

Load generation tool
Load generation tools allow system administrators to test how will a system
behave under a certain amount of load before it goes into production. Load
generation is a mature discipline and many tools exists, every one with its
pros and cons. Some of the most popular ones are:
- OpenSTA ( http://www.opensta.org ):
simple, efficient and free load testing tool.
- IBM Rational Performance Tester: powerful product ready for enterprise
use.
- Jakarta JMeter (jakarta.apache.org/jmeter): 100% pure Java desktop
application designed to load test functional behavior and measure performance.
One of the most popular Apache Jakarta's tools.

The load used for River Bend tests was created using a Apache JMeter script:
- It simulates a user that browses through three different pages (Home →
Food → Beverages) taking one second to decide where to go between pages
- The script gets all the page contents including external resources like
images
- The simulation will be run for 1, 10, 50 ,100, 200 and 500 hundred
concurrent users that will be incorporated to the load test during five
seconds.
JMeter can display test results in several ways including graphs and
tables:


Advanced cache monitor
Cache monitors are tools that allow system administrators to monitor and
clear the different caches of a system providing a way to know if the cache
system are configured in the right way and allowing to clean the cache between
tests to be sure that response time won't be affected by elements cached in
past tests.
WebSphere Cache Monitor is an EAR installed as part of the WebSphere
Application Server default installation but not deployed by default. River Bend
administrators followed these steps to successfully use Cache Monitor in their
performance tests:
- Deploy your cache monitor ear under the installableApps folder of your
application server:
- Select Websphere_Portal as the targeted server
- Give wpsadmin administrator role
- Patch the default cache monitor with the advanced cache monitor following
the instructions in
www.ibm.com/developerworks/websphere/downloads/cache_monitor.html

Page analytics
The term "page analytics" describes a process that can help to
understand how your site is used. WebSphere Portal writes usage records to a
dedicated log file.
The format of the log follows industry standards ("NCSA
Combined"), you can integrate portal usage data with your preferred
reporting and analytics tools.

This article (
http://www.ibm.com/developerworks/websphere/techjournal/0609_liesche/0609_liesch
e.html) describes how to derive reports and analytics information based on
the data provided by Portal instrumentation and how to use the logs for portal
analytics using open source reporting tools.
River Bend web site tuning results
By running the tests, River Bend administrators obtained these results :
Caching technique |
Users |
Average time (ms) |
Troughput (requests/second)
|
No caching |
1 |
67 |
2.5 |
10 |
105 |
5.2 |
50 |
1260 |
13.6 |
100 |
2694 |
19.4 |
200 |
3758 |
32.1 |
500 |
8307 |
41.9 |
|
|
|
|
WCM basic caching
|
10 |
15 |
5.4 |
50 |
15 |
25.1 |
100 |
22 |
49 |
200 |
587 |
71.8 |
500 |
4062 |
72.9 |
|
|
|
|
Servlet caching |
10 |
13 |
5.4 |
50 |
9 |
25.2 |
100 |
10 |
49.6 |
200 |
582 |
70.4 |
500 |
3027 |
90.1 |
These values were obtained on a development laptop and doesn't represent a
WCM performance statement but allowed River Bend administrator to come up with
some interesting conclusions:
- Caching improves significantly WCM performance.
- The River Bend system can attend more than 70 requests per second while
keeping the page response time under one second.