Dev Tools · 1h ago
Node.js libuv thread pool: the hidden bottleneck your APM misses
Node.js pushes blocking I/O and CPU-heavy tasks to a libuv thread pool defaulting to 4 threads. When bcrypt, gzip, or dns.lookup saturate the pool, requests queue invisibly, spiking latency without affecting CPU or event loop metrics. Standard APM tools can't see this queue, making it a common source of mysterious slowdowns.
Meridian48 take
This is a sharp reminder that observability gaps in Node.js are real, but the fix—monitoring pool utilization or switching to worker threads—is well understood, so the real story is why so many teams still don't instrument it.
node-jsperformance-monitoring