Red Hat Directory Server 7.1 Performance Tuning and Sizing Guidelines

Operating System and System Parameter Tuning

PHKL_34032 and PHCO_33675 are installed. These two patches will improve the HP-UX 11i v2 pthread performance in general.

Two pthread tuning environment variables PERF_ENABLE and PTHREAD_FORCE_SCOPE_SYSTEM are set to 1 to force the 1x1 thread model. The default thread models are different on different HP-UX releases. At the first release of HP-UX 11i v2, it is defaulted to MxN threads; starting from HP-UX 11i v2 September 2004 release and on, it is defaulted to bound threads in an MxN environment. It has been observed that the 1x1 threads performs better than MxN threads does in general. Our testing shows 1x1 threads gave best performance number for RHDS 7.1.

Set malloc tuning environment variable _M_CACHE_OPTS=1024:32:0 to turn the thread local cache on. NOTE: You need to have enough memory to use this tuning variable; otherwise, the server may exit when it runs out of memory. 10% of the nsslapd-cachememsizemay be a good guess for the additional memory requirement, but test it before using it. By default, the thread local cache is disabled.

Set maxfiles_lim, the hard file limit per process, to at least 4096.

Set max_thread_proc, the maximum number of threads per process, to 256.

Set maxdsize_64bit, the maximum of data-segment size for a 64-bit process, to at least the size of nsslapd-cachememsize * 2.3 + nsslapd-dbcachesize. More information about nsslapd-cachememsizeand nsslapd-dbcachesizewill be provided in Section “Tuning Recommendations”.

Directory Sever Tuning Overview

The following tuning recommendations apply to Red Hat Directory Server version 7.1 for optimal performance:

Tune the cache size big enough to fully utilize the cache. There are two caches available: database cache and entry cache. Detailed information is provided in Section “Tuning Recommendations

Turn the access log off if you don’t need it. Access log contains information for all the operations. By default, the access log is turned on.

Tune the number of operation threads down for directory servers who mainly serve search requests. Although, fewer threads may gave you better search performance, it may also become the bottleneck when the directory sever also serves some time-consuming operations such as add or modify. For detailed information, please see Section “Tuning Recommendations”.

Utilize indexes to speed up searches. However RHDS provides an attribute, nsslapd- idlistscanlimit, to limit the number of IDs that are scanned per index key during a search operation. When the size of an individual ID list reaches this limit, the server will behave as if no index was

available for that type of search. For more information about nsslapd-idlistscanlimit,please refer to Red Hat Directory Server 7.1 Administrator’s Guide*

Disable unneeded plugins such as referential integrity, UID uniqueness or schema checking, etc.

Other factors, such as if SSL, replication, or referral is configured, may also affect the performance. Complex or many ACIs (directory server access control instructions) will also affect performance. SSL performance data is also covered in Data Collection 6.

*Hewlett-Packard Company, “Red Hat Directory Server Version7.1 Administrator’s Guide”, http://docs.hp.com/en/7118/ds71admin.pdf.

Page 2