Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Kubernetes NodeJS consuming more than 1 CPU?

We are running a single NodeJS instance in a Pod with a request of 1 CPU, and no limit. Upon load testing, we observed the following:

NAME                                                CPU(cores)   MEMORY(bytes)
backend-deployment-5d6d4c978-5qvsh                  3346m        103Mi
backend-deployment-5d6d4c978-94d2z                  3206m        99Mi

If NodeJS is only running a single thread, how could it be consuming more than 1000m CPU, when running directly on a Node it would only utilize a single core? Is kubernetes somehow letting it borrow time across cores?

like image 735
danthegoodman Avatar asked Apr 30 '26 10:04

danthegoodman


1 Answers

Although Node.js runs the main application code in a single thread, the Node.js runtime is multi-threaded. Node.js has an internal worker pool that is used to run background tasks, including I/O and certain CPU-intensive processing like crypto functions. In addition, if you use the worker_threads facility (not to be confused with the worker pool), then you would be directly accessing additional threads in Node.js.

like image 65
pvillela Avatar answered May 03 '26 00:05

pvillela