diff --git a/nlpcraft/src/main/scala/org/apache/nlpcraft/common/util/NCUtils.scala b/nlpcraft/src/main/scala/org/apache/nlpcraft/common/util/NCUtils.scala
index 742ace8..6f6c0f6 100644
--- a/nlpcraft/src/main/scala/org/apache/nlpcraft/common/util/NCUtils.scala
+++ b/nlpcraft/src/main/scala/org/apache/nlpcraft/common/util/NCUtils.scala
@@ -26,7 +26,8 @@
 import java.sql.Timestamp
 import java.text.{DecimalFormat, DecimalFormatSymbols}
 import java.time.{Instant, ZoneId, ZonedDateTime}
-import java.util.concurrent.{ExecutorService, Executors, LinkedBlockingQueue, RejectedExecutionHandler, ThreadPoolExecutor, TimeUnit}
+import java.util.concurrent.atomic.AtomicInteger
+import java.util.concurrent.{ExecutorService, LinkedBlockingQueue, RejectedExecutionHandler, ThreadFactory, ThreadPoolExecutor, TimeUnit}
 import java.util.jar.JarFile
 import java.util.stream.Collectors
 import java.util.zip.{ZipInputStream, GZIPInputStream ⇒ GIS, GZIPOutputStream ⇒ GOS}
@@ -1446,17 +1447,23 @@
 
     /**
      *
+     * @param namePrefix
      * @param threadNum
      * @return
      */
-    def mkThreadPool(threadNum: Int = Runtime.getRuntime.availableProcessors()): ThreadPoolExecutor =
+    def mkThreadPool(namePrefix: String, threadNum: Int = Runtime.getRuntime.availableProcessors() * 8): ThreadPoolExecutor =
         new ThreadPoolExecutor(
             1,
             threadNum,
             0L,
             TimeUnit.MILLISECONDS,
             new LinkedBlockingQueue[Runnable],
-            Executors.defaultThreadFactory,
+            new ThreadFactory {
+                val thNum = new AtomicInteger(1)
+
+                override def newThread(r: Runnable): Thread =
+                    new Thread(r, s"pool-$namePrefix-thread-${thNum.getAndIncrement()}");
+            },
             new RejectedExecutionHandler() {
                 // Ignore rejections.
                 override def rejectedExecution(r: Runnable, exec: ThreadPoolExecutor): Unit = ()
diff --git a/nlpcraft/src/main/scala/org/apache/nlpcraft/examples/misc/darksky/DarkSkyService.java b/nlpcraft/src/main/scala/org/apache/nlpcraft/examples/misc/darksky/DarkSkyService.java
index ed53b19..9579692 100644
--- a/nlpcraft/src/main/scala/org/apache/nlpcraft/examples/misc/darksky/DarkSkyService.java
+++ b/nlpcraft/src/main/scala/org/apache/nlpcraft/examples/misc/darksky/DarkSkyService.java
@@ -71,7 +71,10 @@
         DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss").withZone(ZoneId.systemDefault());
 
     // Can be configured.
-    private final ExecutorService pool = NCUtils.mkThreadPool(Runtime.getRuntime().availableProcessors());
+    private final ExecutorService pool = NCUtils.mkThreadPool(
+        "darksky",
+        Runtime.getRuntime().availableProcessors() * 8
+    );
 
     /**
      *
diff --git a/nlpcraft/src/main/scala/org/apache/nlpcraft/probe/mgrs/nlp/NCProbeEnrichmentManager.scala b/nlpcraft/src/main/scala/org/apache/nlpcraft/probe/mgrs/nlp/NCProbeEnrichmentManager.scala
index 28cb6a8..a51e051 100644
--- a/nlpcraft/src/main/scala/org/apache/nlpcraft/probe/mgrs/nlp/NCProbeEnrichmentManager.scala
+++ b/nlpcraft/src/main/scala/org/apache/nlpcraft/probe/mgrs/nlp/NCProbeEnrichmentManager.scala
@@ -94,8 +94,7 @@
     override def start(parent: Span = null): NCService = startScopedSpan("start", parent) { _ ⇒
         embeddedCbs = mutable.HashSet.empty[EMBEDDED_CB]
 
-        pool = U.mkThreadPool()
-
+        pool = U.mkThreadPool("probe-enrichment")
         executor = ExecutionContext.fromExecutor(pool)
 
         ackStart()
@@ -114,9 +113,7 @@
         }
 
         U.shutdownPools(pool)
-
         executor = null
-
         pool = null
 
         ackStop()
diff --git a/nlpcraft/src/main/scala/org/apache/nlpcraft/server/sugsyn/NCSuggestSynonymManager.scala b/nlpcraft/src/main/scala/org/apache/nlpcraft/server/sugsyn/NCSuggestSynonymManager.scala
index 2d29192..ed40e1d 100644
--- a/nlpcraft/src/main/scala/org/apache/nlpcraft/server/sugsyn/NCSuggestSynonymManager.scala
+++ b/nlpcraft/src/main/scala/org/apache/nlpcraft/server/sugsyn/NCSuggestSynonymManager.scala
@@ -130,7 +130,6 @@
      */
     override def stop(parent: Span): Unit = startScopedSpan("stop", parent) { _ ⇒
         U.shutdownPools(pool)
-
         pool = null
         executor = null
 
