!!! Overview [{$pagename}] is the Pool of [NDS Threads] [eDirectory] is multi-threaded for performance reasons. In multi-threading, when the system is busy, more [threads] are created to handle the load and some threads are terminated to avoid extra overhead. As it is inefficient and costly to frequently create and destroy [NDS Threads]. Instead of spawning new [threads] and destroying them for every task, a number of [threads] are started and placed in the [{$pagename}] pool. The system allocates the [threads] from the [{$pagename}] to several tasks as needed. Tasks are held in two types of queues: * Tasks that need immediate scheduling are held in the Ready queue. * Tasks that need scheduling at a later time are held in the Waiting queue. !! [{$pagename}] [NDSD Loadable Modules] Not every [NDSD Loadable Module] uses the [{$pagename}]. The actual number of [threads] for the [Processes] is more than the number that exists in the [{$pagename}]. \\For example: * [FLAIM] manages its background [threads] separately. * [imonitor] number of [threads] are controlled by [Http.server.threads-per-processor] !! [{$pagename}] [Monitoring] Run the [ndsconfig] get and [ndsconfig] set commands to get and set the [{$pagename}] size parameters. [{$pagename}] size parameters are: * [N4u.server.max-threads] * [N4u.server.idle-threads] * [N4u.server.start-threads] * [N4u.server.thread-stack-size] * [N4u.server.active-interval] Running the [ndstrace] -c threads command returns the following thread pool statistics: * The total number of [threads] that are spawned, terminated, and [Idle threads]. * The total number of[ worker threads] currently and the peak number of [worker threads]. * The number of [Ready tasks] and the peak number of [Ready task] in the Ready [queue]. * The minimum, maximum and average number of microseconds [Ready tasks] spent in the Ready [queue]. * The current and maximum number of [Ready tasks] in the Waiting [queue]. !! [{$pagename}] Some Hints [eDirectory] requires a minimum of 16 [NDS Threads] for its internal operations. * one Monitor thread for every 255 [LDAP] client ([DUA]) connections. * one Worker thread for every four concurrent [DClients] that need to be serviced. (Remember, [NcpServers] are [DClients]) * eight [NDS Threads] for every [Central Processing Unit] ([CPU]) on the device to service client search requests. !! Category %%category [eDirectory]%% !! More Information There might be more information for this subject on one of the following: [{ReferringPagesPlugin before='*' after='\n' }]