Sun Java logo     Previous      Contents      Index      Next     

Sun logo
Sun Java[TM] System Identity Manager 7.0 Tuning, Troubleshooting, and Error Messages 

Chapter 1
Performance Tuning

This chapter provides information to help you optimize Identity Manager performance. This information includes a description of tools, methodologies, and references that you can use to improve performance and a list of resources you can use to debug performance-related issues.


Note

  • Be aware that the tunings described in this chapter are only guidelines. To optimize your deployment, you may have to modify some of these tunings.
  • Where noted, be sure to validate tunings before applying changes in a production environment.
  • The XPRESS set method is being deprecated as of Identity Manager 7.0. You should use putmap, setlist, and setvar methods.

This chapter is organized into the following sections:


Optimizing the J2EE Environment

This section describes methods you can use to optimize the J2EE environment, including

Overview

The performance increases described in Table 1-1 were observed during a series of experiments that resulted in a considerable increase in throughputs for the use cases tested. These increases are attributed to JVM sizing and switches that affected garbage collector behavior and HTTP container tuning:

Table 1-1   Performance Increases in Throughputs

Scenario/Use Case

Users

Throughput Increase

Create user

100

20% – 25%

Approve user

50

700%

 

Note: In an untuned case (50 users), Out of Memory Errors occurred.

Edit user

20

10%

The JVM tuning suggestions provided in this chapter were derived using the following tools:

Tuning the JVM

To improve JVM performance:

Tuning the HTTP Container

You can use the perfdump script to gather HTTP container statistics. Use these statistics to identify potential bottlenecks in application server HTTP container performance and to determine appropriate sizings for the different thread and connection pools and queues in the HTTP container.


Note

For information about using the perfdump script, go to:

http://docs.sun.com/app/docs/doc/817-2157-10



Optimizing the Database Repository

You can implement the following tuning suggestions (as appropriate) to optimize a database repository:


Optimizing the Identity Manager Product

Suggestions for optimizing Identity Manager are organized into the following areas:

General

In general, you can optimize Identity Manager performance by

Task Bar

The Administrator Interface task bar displays links to all previously performed provisioning tasks, which causes the interface to render more slowly when there are a large number of tasks.

To improve interface performance, remove the taskResults.jsp link from all JSPs by deleting the <List>...</List> element from the UserUIConfig object.

Code Example 1-3 illustrates removing the <List>...</List> entries within <TaskBarPages>:

Code Example 1-3  Modifying the UserUIConfig Object

<TaskBarPages>
  <List>
    <String>account/list.jsp</String>
    <String>account/find.jsp</String>
    <String>account/dofindexisting.jsp</String>
    <String>account/resourceReprovision.jsp></String>
    <String>task/newresults.jsp</String>
    <String>home/index.jsp</String>
  </List>
</TaskBarPages>

Provisioner

To improve provisioner performance:

Session

Identity Manager maintains a least recently used (LRU) cache of authenticated sessions for use by authenticated users. By using existing, authenticated sessions, you can speed repository access for objects and actions that require a session.

To optimize authentication pool size, change the session.userPoolSize value in the Waveset.properties file to the maximum number of expected, concurrent user sessions on the server.


Note

Do not exceed a value of 100, as performance degrades significantly at higher values.


Workflow

You can use the following methods to optimize workflow:

ManualAction and WorkItem

Performance recommendations in this area include:

Forms

Recommendations for optimizing forms performance include:

Resource Query

To increase resource query performance, implement the query using FormUtil.getResourceObjects.

Use one of the following methods to cache query results:

Reconciliation

To optimize reconciliation performance:


Optimizing the General XML

In general, use static XMLObject declarations if possible. For example, use:

Depending on the context, you might have to wrap an object instead of using the <o></o> element.


OS Kernel Tunings

Chapter 6 of the Sun Java Application Server Performance Guide for 7.1EE indicates doing some tunings in /etc/system and some using ndd /dev/tcp.

For Linux OS tunables, refer to the 7.0 Performance guide.


Debugging Performance Issues

The following debugging pages, available from the Administrator Interface, provide helpful information for optimizing performance:



Previous      Contents      Index      Next     


Part No: 819-6130-10.   Copyright 2006 Sun Microsystems, Inc. All rights reserved.