Chapter 5. Setting the number of Directory Server threads
The number of threads Directory Server uses to handle simultaneous connections affects the performance of the server. For example, if all threads are busy handling time-consuming tasks, such as add
operations, new incoming connections are queued until a free thread can process the request.
If the server provides a low number of CPU threads, configuring a higher number of threads can increase the performance. However, on a server with many CPU threads, setting a too high value does not further increase the performance.
By default, Directory Server uses an auto-tuning setting that calculates the number of threads. This number is based on the hardware resources of the server when the instance starts.
Avoid setting the number of threads manually. Use the auto-tuning setting instead.
With enabled automatic thread tuning, Directory Server uses the following optimized number of threads:
CPU threads number | Directory Server threads number |
---|---|
1-16 | 16 |
17-512 | The Directory Server thread number matches the CPU thread number in the system. For example, if your system has 24 CPU threads, Directory Server uses 24 threads. The maximum number of Directory Server threads is 512. |
512 and more | 512. Directory Server applies the recommended maximum number of threads. |
5.1. Enabling automatic thread tuning using the command line
By default, Directory Server automatically sets the number of threads based on the available hardware. However, in certain cases, you can manually enable this auto-tuning feature by using the command line.
Procedure
To enable the auto-tuning feature, set the
nsslapd-threadnumber
attribute value to-1
by the command:# dsconf -D "cn=Directory Manager" ldap://server.example.com config replace nsslapd-threadnumber="-1" Successfully replaced "nsslapd-threadnumber"
Verification
Verify the number of treads that Directory Server now uses by the command:
# dsconf -D "cn=Directory Manager" ldap://server.example.com config get nsslapd-threadnumber nsslapd-threadnumber: 16
NoteThe command retrieves the number of threads that Directory Server calculated based on the correct hardware resources.
Additional resources
5.2. Enabling automatic thread tuning using the web console
By default, Directory Server automatically sets the number of threads based on the available hardware. However, in certain cases, you can manually enable this auto-tuning feature by using the web console.
Prerequisites
- You are logged in to the instance in the web console. For more details, see Logging in to the Directory Server by using the web console.
Procedure
- Navigate to Server → Tuning & Limits.
-
In the Number Of Worker Threads field, set the number of threads to
-1
. - Click Save Settings.
Additional resources
5.3. Manually setting the number of threads using the command line
In certain situations, it is necessary to manually set a fixed number of Directory Server threads. For example, if you do not use the auto-tuning setting and change the number of CPU cores in a virtual machine, adjusting the number of Directory Server threads can improve the performance.
You can also use this procedure to re-enable the auto-tuning setting if you set a specific number of threads earlier.
Procedure
Set the number of threads Directory Server should use:
# dsconf -D "cn=Directory Manager" ldap://server.example.com config replace nsslapd-threadnumber="64" Successfully replaced "nsslapd-threadnumber"
Set the
nsslapd-threadnumber
parameter to-1
to enable the auto-tuning setting.
5.4. Manually setting the number of threads using the web console
In certain situations, it is necessary to manually set a fix number of Directory Server threads. For example, if you do not use the auto-tuning setting and change the number of CPU cores in a virtual machine, adjusting the number of Directory Server threads can improve the performance.
Note that you can use the web console to re-enable the auto-tuning setting if you set a specific number of threads earlier.
Prerequisites
- You are logged in to the instance in the web console.
Procedure
- Navigate to Server → Tuning & Limits.
- In the Number Of Worker Threads field, set the number of threads.
- Click Save Settings.