HP-UX Directory Server 8.1 Performance Tuning and Sizing Guidelines

5
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-threadnumber parameter 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-threadnumber value 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