The following sections provide information about how you can improve the performance of eDirectory on UNIX systems:
Novell eDirectory on Linux and Solaris uses a dynamically adjusted thread pool to service client requests. The thread pool is self-adjusting and delivers optimum performance in most cases. However, you can avoid the delay caused by starting up threads when there is a sudden load on the server by setting the following parameters in the /etc/nds.conf file.
Novell eDirectory uses persistent caching so that changes being made to a server are held in a vector. If the server crashes in the middle of changes, eDirectory will load faster and synchronize the changes in seconds when the server is brought back up. Novell eDirectory uses a rollback model with a log file to roll forward transactions in the event of a system failure.
eDirectory settings begin with 16MB of cache, 50% of which is allocated to block caching and the other 50% is allocated to record cache. After 15 minutes, eDirectory will modify its cache thresholds to initialize up to 51% of the available free memory for the cache, leaving at least 24 MB for the OS. This algorithm is used only if the host OS supports the call that enables you to determine the amount of free memory available.
You can optimize your eDirectory cache in the following ways:
Although the above algorithm works well for Windows and NetWare, it does not work as well for UNIX systems. On UNIX systems, the free available memory reported by the OS will be less than other operating systems because of the way the UNIX OS uses free memory for internal caching of file system blocks, frequently run programs, libraries, etc. In addition to this memory allocation, libraries on UNIX normally do not return the freed memory back to the OS.
For these reasons, we recommend allocating a fixed amount of RAM to the cache.
Fix the amount of RAM for UNIX systems by doing one of the following:
Create a file called _ndsdb.ini in the same directory that the eDirectory database files (DIB set) are located (usually in /var/nds/dib).
Add the following parameters listed in to the _ndsdb.ini file:
Click Agent Configuration .
Click Database Cache, then view the following information:
Choose from the following options:
Click Submit.
By default, eDirectory uses dynamic cache. If you have sufficient RAM to increase the eDirectory cache size, you can increase the performance of eDirectory considerably for large databases by allocating more RAM to the eDirectory cache.
The parameters that are listed in the following table can be adjusted to enhance your eDirectory performance:
According to the algorithm, the default setting for Novell eDirectory is the following:
cache=dyn,%:51,min:16777216,max:0,leave:0
This indicates the following:
eDirectory operates with a hard limit of 16 MB, so that all applications are started and the system is stabilized.
You can also configure eDirectory to use a percentage of the total memory. To do so, specify the cache as shown below:
cache=hard,total,%:percentage_of_total_memory_in_bytes
Bulkload performance using the Import/Convert/Export (ICE) utility can be affected by a number of items. The most common performance hits come from poor Disk I/O management and the allocation of insufficient memory for the Novell eDirectory cache.
If eDirectory is essentially the only application, you can set the eDirectory cache up to 80% of the total memory. All allocated cache will eventually be used. eDirectory performance on highly volatile data is improved with more cache.
IMPORTANT: You should avoid setting the cache memory size above 40% of the total memory if the server is hosting services or applications other than eDirectory. The smallest tested cache size is 0 and the largest is 3 GB. Determining the proper cache size depends on the memory needs of other processes running on the same server, and on the amount of disk cache required. You should test a variety of cache sizes to find a good balance.
To optimize the bulkload performance, allocate a higher percentage of the eDirectory cache for block cache. We recommend setting a value of 80% for block cache. This can be reset after the operation is completed.
Using iMonitor is the quickest way to modify the blockcachepercentage parameter. To do so, follow the instructions in Using Novell iMonitor.
The LBURP transaction size sets the number of records that will be sent from ICE to the LDAP server during a single transaction. Increasing this value can improve bulkload performance, assuming that you have adequate memory and that the increase does not cause I/O contention.
The default transaction size is 25, which is appropriate for small LDIF files (fewer than 100,000 operations) but not for a large number of records. The LBURP transaction size can be set anywhere between 1 and 1000.
To modify the transaction size, modify the required value for the n4u.ldap.lburp.transize parameter in /etc/nds.conf.
In ideal scenarios, a higher transaction size ensures faster performance. However, the transaction size must not be set to arbitrarily high values for the following reasons:
See Debugging LDIF Files for more information.
See Enabling Forward References for more information.
The following sections provide information about how to tune the Solaris kernel, network, and file system:
IMPORTANT: Before you begin, make sure that you have applied the recommended patches to the Solaris OS. For more information, see "Installing or Upgrading Novell eDirectory on Solaris" in the Novell eDirectory 8.7.3 Installation Guide.
To optimize the performance of eDirectory on Solaris, set the following kernel variables in the /etc/system:
You can enhance LDAP search performance using the Solaris ndd command. The following command syntax allows you to analyze and modify tunable parameters that affect networking operation and behavior:
ndd -set /dev/tcp variable_name variable_value
The recommended values for the variables are listed in the following table:
Novell eDirectory performance on Solaris can be improved if the Solaris file system is adequately tuned, especially for bulk loading data into the directory. File system tuning for eDirectory is similar to tuning for a database. See the Sunworld* Web site for more information on the Solaris file system.