Memory

The HP-UX Directory Server caches entry and indexing information in memory. It requires at least 256 MB of memory for a small deployment, but for large deployments it needs 512 MB to 4 GB or more RAM for best performance. To estimate how much RAM is needed for the directory server, use the following formula:

Total_HPDS_RAM = 1.2 * (base_RAM_need_for_slapd_process + caches) Where

base_RAM_needed_for_slapd_process = 27 MB + nsslapd-threadnumber * 0.25MB caches = dbcache + SUM(all entry caches)* 2.3 + import_cache

Explanation of formula parameters:

Constant 1.2: 20% additional RAM is needed for the slapd process to handle incoming LDAP operations. 20% is an estimated number, and it should be sufficient. However, testing is needed to ensure that it is enough before going into production.

27MB: the size of the slapd process.

nsslapd-threadnumber *0.25 MB: each thread needs about 0.25 MB of memory.

dbcache: specified as nsslapd-dbcachesize.

all entry caches: specified as nsslapd-cachememsize. The 2.3 factor only needs to apply to the nsslapd-cachememsize of the databases you are working with.

import_cache: specified as nsslapd-import-cachesize. If you do not do online import, then memory allocated for the dbcache can be used for the import cache. There is no need to allocate memory for the import cache in addition to the dbcache.

Tuning recommendations

This section discusses how to tune some of the very important HPDS attributes.

nsslapd-threadnumber

The nsslapd-threadnumberparameter is described as follows in the HP-UX Directory Server configuration, command, and file reference:

nsslapd-threadnumber

Defines the number of operation threads that the Directory Server creates at startup. The nsslapd-threadnumbervalue should be increased if you have many directory clients performing time-consuming operations such as add or modify, as this ensures that there are other threads available for servicing short-lived operations such as simple searches. You may also need to increase this value if there are many replication agreements or chained backends (database links). This attribute is not available from the server console.

Entry DN:

cn=config

Valid Range:

1 to the maximum number of threads supported by the system

Default Value:

30

Syntax:

Integer

Example:

nsslapd-threadnumber: 60

One common misconception is that more threads are better. When too many threads are configured, thread contention can affect performance. As you can see in Figure 1, the search throughput decreases as the number of threads increases. In this case, the best performance occurs when

5