Skip to main content link. Accesskey S
  • Log In
  • Help
  • IBM Logo
  • IBM Mashup Center wiki
  • All Wikis
  • All Forums
  • Home
  • Product Documentation
  • Community Articles
  • Learning Center
  • IBM Redbooks
Community Articles Product Documentation Learning Center IBM Redbooks This category IBM Mashup Center 3.0.0.1 Documentation Custom Search Scope...
Search
Product Documentation > Tuning the WebSphere Application Server instance of Lotus Mashups
  • New Article
  • Share Show Menu▼
  • Subscribe Show Menu▼

About the Original Author

IBM contributorIBM
Contribution Summary:
  • Articles authored: 1885
  • Articles edited: 0
  • Comments Posted: 0

Recent articles by this author

Adding client-side life cycle events to spaces

This topic describes how to add clientside events to spaces and space templates. It explains how to add the required preference to a template so that it know where to locate the lifecycle extension. It also explains how to add the metadata to existing spaces using the Mashup Enable API. Finally, ...

Configuring endpoint bindings in widget definitions

This topic describes how to add endpoint binding dependencies to your widget definitions. Endpoint bindings are used to resolve URLs dynamically at runtime in order to prevent end users from getting connection errors when the service is unavailable. Endpoint bindings are also useful when ...

Creating and deploying custom themes and skins

This topic describes how to create and deploy a custom theme and skin. We recommend that you use the default Page Builder 2 theme that is provided with Mashup Center as a template, update the files as necessary, and then upload them to the public WebDAV storage directory on the Mashup Center ...

Creating sandboxed widgets

As a widget developer, you may want to implement a security mechanism called sandboxing when creating widgets that have not been tested thoroughly and may have the potential to send malicious code to the widget user's company server. When you sandbox a widget, you are marking the widget as ...

Defining custom widget modes

When developing widgets, you might want to implement the ability to switch among various modes, for example, edit, view, help, and print modes. This article provides some suggestions about how to switch widget modes.

Community articleTuning the WebSphere Application Server instance of Lotus Mashups

Added by IBM contributor IBM on April 12, 2010 | Version 1
expanded Abstract
collapsed Abstract
This topic describes the details and results of the performance testing of the WebSphere Application Server instance of Lotus® Mashups.
Tags:
Contents: IBM Mashup Center Performance Tuning Guide

This topic describes the details and results of the performance testing of the WebSphere Application Server instance of Lotus® Mashups.

Note: In our measurement environment, Lotus Mashups and MashupHub were installed on the same server but with separated instances of WebSphere Application Server. Lotus Mashups is composed of standard Java Web applications. Therefore, typical tuning practices for WebSphere Application Server applications were used in our testing. In your environment, at a minimum, you should size and monitor database connection pools, the application server thread pools, and the JVM heap. See the following sections for details about each of these components.

Database connection pools

The default maximum WebSphere Application Server Java Database Connectivity (JDBC) pool size is only 10 Lotus Mashups connections. You should increase this number of connections for all types of installations. In our benchmark testing, each application that we measured had a maximum of 100 Lotus Mashups connections. Certain applications had an even higher number of connections. We recommend that you set this value to 100 after installation and tune your testing environment as required by your workload. Also, be sure to confirm that the back end database will accept the total number of Lotus Mashups connections from all JDBC pools.

In addition, the initial prepared statement cache size is also too small. As a result, we set the cache size value 100.

WebContainer thread pools

The default maximum size of the WebSphere Application Server WebContainer thread pool of Lotus Mashups is 50, which is too small. In our measurements, we set this size to at least a maximum of 100, or 25 threads per processor core, to allow more simultaneous requests on the WebSphere Application Server instance of Lotus Mashups.

You can monitor the actual number of threads being used in the pool by enabling the appropriate performance counters and launching the IBM® Tivoli® Performance Monitor.

JVM heap

The default size for each WebSphere Application Server JVM is not set. The maximum heap size of Lotus Mashups should be at least 768 MB. To obtain our results, we used a maximum heap size of 1024 MB.

If your machine has more than one processor, we recommend parallel garbage collection. You can enable this setting for Lotus Mashups with –XgcthreadsN, where N is double the CPU core number.

Note: Note that when running larger JVM sizes, all the JVMs running on a physical server must fit into the physical memory of the server.

In our measurements, one critical setting was enabling the generational garbage collector. Enabling this setting with -Xgcpolicy:gencon for Lotus Mashups means that the JVM reserves several small areas of the heap (two by default) for all new objects called nursery spaces. When one of these areas becomes full, only this area is scanned for dead objects. Any objects still living are moved to a different nursery space. If, after another garbage collection, the second nursery space still has an object in it, these objects are moved to the main heap. This action results in many short garbage collection cycles instead of less frequent, longer garbage collection pauses. In our measurements, with generational collection enabled, garbage collection cycles occur every one to two seconds but take less than 50 milliseconds to complete. This allows higher throughput since there is less chance of transactions being held up by a one-second pause for garbage collection, which would happen with the default collector.

We recommend that you enable verbosegc logging and monitor heap use with any of the settings described above.

Multipart

Multipart is a new Mashup Center 2.0 feature. Server-side Lotus Mashups provides a way to handle multiple requests to a POC DataSource or a POC DataSink with one single request to the mashup source or sink. This is interesting if the mashup handler is accessed through an HTTP request, because then multiple logical requests can be tunneled through one single physical HTTP request.

In addition, the multipart requests sent by the HTTP GET method can be cached by the HTTP Server or Edge Server, so enabling the multipart feature correctly can improve browser-side performance and result in almost no regression for server-side performance. The negative impact on server-side performance of multipart is minimal. You can locate the following five multipart attributes of the WebSphere Application Server instance of Lotus Mashups by navigating to Resource -> Resource Environment -> Resource Environment Providers -> Mashups_ConfigService -> Custom properties.

  • com.ibm.mashups.multipart.enabled and pageLoadOptimization: These two attributes enable and disable the multipart feature. Values are either false or true. Set these values to true to enable multipart.
  • com.ibm.mashups.multipart.correlatehosts: With the default value of false, the browser sends only one multipart request to retrieve resources, even the resources are distributed on a different host. This may take a long time. Set the value to true to allow the browser to send different multipart requests for different hosts.
  • pageLoadOptimizationTheme: Keep the default value of true to enable the multipart feature for theme files. Enabling this feature may improve client-side performance. Also, enabling this feature has no negative impact on server-side performance.
  • pageLoadOptimizationAppWidgets: Keep the default value of false to disable the multipart feature for application widget files. Enabling this feature decreases server-side performance, especially under complex deployment and network conditions.

expanded Attachments (0)
collapsed Attachments (0)
expanded Versions (5)
collapsed Versions (5)
Version Comparison     
VersionDateChanged by              Summary of changes
5Apr 13, 2010 8:50:00 AMAnna G O'Neal  IBM contributor
4Apr 13, 2010 8:43:37 AMAnna G O'Neal  IBM contributor
3Apr 13, 2010 8:38:03 AMAnna G O'Neal  IBM contributor
This version (1)Apr 12, 2010 5:42:33 PMIBM  IBM contributor
1Apr 13, 2010 8:08:58 AMAnna G O'Neal  IBM contributor
Copy and paste this wiki markup to link to this article from another article in this wiki.
Go ElsewhereStay ConnectedHelpAbout
  • IBM Collaboration Solutions wikis
  • IBM developerWorks
  • IBM Software support
  • Twitter LinkIBMSocialBizUX on Twitter
  • FacebookIBMSocialBizUX on Facebook
  • ForumsLotus product forums
  • BlogsIBM Social Business UX blog
  • Community LinkIBM Collaboration Solutions
  • Wiki Help
  • Forgot user name/password
  • Wiki design feedback
  • Content feedback
  • About the wiki
  • About IBM
  • Privacy
  • Accessibility
  • IBM Terms of use
  • Wiki terms of use