eDirectory tiene varios hilos por motivos de rendimiento. Cuando se usan varios hilos y el sistema está ocupado, se crean más hilos para controlar la carga y algunos se terminan para evitar un sobrecargo adicional. Resulta ineficiente y costoso crear y destruir hilos con frecuencia. En lugar de generar nuevos hilos y destruirlos para cada tarea, se inician varios hilos y se colocan en un repositorio. El sistema asigna los hilos del repositorio de hilos a varias tareas, según sea necesario. Las tareas se colocan en dos tipos de colas:
Las tareas que necesitan una programación inmediata se colocan en la cola de hilos preparados.
Las tareas que necesitan una programación más tarde se colocan en la cola de hilos en espera.
No todos los módulos utilizan el repositorio de hilos. El número real de hilos del proceso es mayor que el número disponible en el repositorio de hilos. Por ejemplo, FLAIM gestiona sus hilos en segundo plano por separado.
Al ejecutar el comando ndstrace -c threads, se devuelven las siguientes estadísticas del repositorio de hilos:
Número total de hilos que se generan, se terminan y están inactivos.
Número total de hilos de trabajo actuales y número máximo de hilos de trabajo.
Número de tareas y número máximo de tareas en la cola de hilos preparados.
Número mínimo, máximo y medio de microsegundos que pasan en la cola de hilos preparados.
Número actual y máximo de tareas en la cola de hilos en espera.
Ejemplo de un repositorio de hilos de muestra:
Hay ciertos parámetros de repositorio de hilos:
n4u.server.max-threads: Número máximo de hilos que pueden estar disponibles en el repositorio.
n4u.server.idle-threads: Número máximo de hilos inactivos que pueden estar disponibles en el repositorio.
n4u.server.start-threads: Número de hilos iniciados.
Ejecute los comandos ndsconfig get y ndsconfig set para obtener y establecer el tamaño del repositorio de hilos.