Why are there 3 erl.exe processes on Windows, and what are they responsible for? (Why do they use so much CPU?)

Hello, it sounds like a trivial question but I haven’t found the answer anywhere:
in Couchbase server on Windows there are 3 erl.exe processes (at least, on version 5.1.1 and likely in others).

What are the three erl.exe processes responsible for? (and how do they use resources?)

Asking because one of them occupies very little RAM and CPU, while the other two eat up > 90% of the CPU and approximately 18GB of RAM (13 GB + 5 GB).
Since 13 GB is exactly what we have configured for the 3 services (Data, Indexer, FTS), one of the three erl.exe memory usage somewhat makes sense, the CPU and total RAM usage don’t

Thank you!

The 3 different Erlang erl.exe processes (on Windows) / beam.smp processes (on Linux) belong to the babysitter, cluster manager (ns_server) and the view engine (couchdb). They have a process tree that looks something like:

babysitter

ns_server (Cluster Manager)

couchdb (View Engine)

  • The babysitter is responsible for starting and restarting all other Couchbase Server processes and is not cluster aware. This is probably the “lightweight” process that you see consuming very little RAM and CPU resources.

  • ns_server is responsible for a host of activities. The main overhead of this process includes periodic (per second) stat collection and management from all buckets and indexes. You can refer to the documentation to get a better idea of the responsibilities of ns_server on each Cocuhbase Server node.

  • View Engine is the process responsible for handling Views, which are co-located with the Data Service. The resource usage of this process can increase depending on how many views you have and how much memory is allocated in your Java script code for your View index definitions (for example, using loops in Javascript functions ).

1 Like