Exit Print View

Sun OpenDS Standard Edition 2.0 Administration Guide

Get PDF Book Print View
 

Document Information

Configuring the Directory Server

Configuring Security in the Directory Server

Managing Directory Data

Controlling Access To Data

Replicating Data

Managing Users and Groups

Directory Server Monitoring

Improving Performance

Tuning Performance

General Performance Tuning

Java Virtual Machine Settings

Directory Server Configuration

Improving Performance When Importing Large Data Sets

Data Import Overview

Adjusting Import Parameters

To Adjust the Number of Import Threads

To Adjust the Queue Size

Adjusting Memory Requirements to Match Configuration Settings

Advanced Administration

Java Virtual Machine Settings

The default settings of the directory server are targeted initially for evaluators and developers who are running equipment with a limited amount of resources. For this reason, it is important to do initial tuning of the JavaTM Virtual Machine (JVM) and the directory server software to improve scalability and performance (particularly for write operations).

You can use the OPENDS_JAVA_ARGS environment variable to provide global configuration arguments that can be passed to the JVM, or you can use the java.properties file. Any argument that can be used with the java command can be used with both methods.

For more information, see dsjavaproperties in Sun OpenDS Standard Edition 2.0 Command-Line Usage Guide.

For additional information about tuning the JVM, see the Java Performance Documentation site. Of particular use are the Java Tuning White Paper and Garbage Collection Tuning documents.

Some notable arguments related to performance and scalability follow.


Note - These recommendations apply to Sun's HotSpot VM and are not necessarily available with a JVM from another vendor.


-d32 or -d64

Select the 32-bit or 64-bit version of the JVM (if applicable for the underlying system).

-server

Specify that the server VM should be used instead of the client VM. The client VM is better optimized for processes that run for a short period of time and need to start as quickly as possible, whereas the server VM can take longer to warm up but is faster in the long run.

-Xms2g and -Xmx2g

Specify that the initial and maximum memory sizes available to the JVM should be 2 Gbytes. Increasing the amount of memory available can improve performance, but increasing it too high can sometimes have a detrimental effect in the form of longer pauses for full garbage collection runs. The initial and maximum sizes should generally be set to the same values.

In general, you should allocate enough memory for the directory server runtime and the rest to the DB cache.

-XX:+UseConcMarkSweepGC

Use the Concurrent Mark Sweep (CMS) garbage collector. This option allows the JVM to minimize the response time of LDAP operations, but it could have a small impact on the overall performance (throughput) of the directory server.

-XX:CMSInitiatingOccupancyFraction=<percentage>

Specify the level at which the CMS garbage collection is started. The default value is approximately 68%. Use this value if you want to set the percentage to something other than the default value.

-XX:+AggressiveOpts

Specify the JVM to configure itself with a number of settings (for example, for garbage collection, compilation, and other types of optimizations) that can provide improved performance.

-XX:+UseBiasedLocking

Improve locking performance in the server in cases where there is not expected to be a high degree of contention.

-XX:LargePageSizeInBytes=256m

Use large pages for the information it stores in memory. This argument applies primarily to systems using the UltraSPARC T1® processor.

-XX:+UseParallelGC

Specify that the system should use parallel garbage collection, which is particularly useful on systems with a large number of CPUs.

-XX:+UseParallelOldGC

Specify that the JVM should use parallel garbage collection for the old (tenured) generation.

-XX:ParallelGCThreads=8

Specify that the JVM should use 8 threads when performing parallel garbage collection. The default is to use a number of threads equal to the number of CPUs, but this can be inappropriate on systems with a very large number of CPUs or on CMT-based systems like those using the UltraSPARC T1 processor.