Should I be concerned about many processes running?

Hi, I have been learning elixir lately and did some hands. All I did was create some exs files and ran them. After a while I ran below command on shell

Process.info()

This returned a list of so many PIDs. I was wondering why a lot of processes have been created even though I haven’t anything big with elixir?

Result obtained after running the above command

[#PID<0.0.0>, #PID<0.1.0>, #PID<0.2.0>, #PID<0.3.0>, #PID<0.4.0>, #PID<0.5.0>,
 #PID<0.6.0>, #PID<0.7.0>, #PID<0.8.0>, #PID<0.11.0>, #PID<0.43.0>,
 #PID<0.45.0>, #PID<0.46.0>, #PID<0.47.0>, #PID<0.49.0>, #PID<0.50.0>,
 #PID<0.51.0>, #PID<0.52.0>, #PID<0.53.0>, #PID<0.55.0>, #PID<0.56.0>,
 #PID<0.57.0>, #PID<0.58.0>, #PID<0.59.0>, #PID<0.60.0>, #PID<0.61.0>,
 #PID<0.62.0>, #PID<0.63.0>, #PID<0.64.0>, #PID<0.65.0>, #PID<0.66.0>,
 #PID<0.67.0>, #PID<0.68.0>, #PID<0.69.0>, #PID<0.70.0>, #PID<0.71.0>,
 #PID<0.72.0>, #PID<0.73.0>, #PID<0.74.0>, #PID<0.75.0>, #PID<0.76.0>,
 #PID<0.81.0>, #PID<0.82.0>, #PID<0.85.0>, #PID<0.86.0>, #PID<0.87.0>,
 #PID<0.88.0>, #PID<0.89.0>, #PID<0.90.0>, #PID<0.91.0>, ...]

Can someone help me understand this? Are these beam vm processes and considered as normal?

Elixir version - 1.18.4

OS - macOS

2 Likes

This depends entirely what code you ran and is hard to answer generically. But yes a supervised app will make a few processes.

4 Likes

Welcome! That’s completely expected, since Erlang and Elixir itself are designed around processes, and pretty much every dependency that you use. However, they are very lightweight and you can create millions of them. For example, the Livebook application has 300+ processes on boot, and that’s normal (and many of them are idle anyway, waiting for a message). :slight_smile:

7 Likes

The number of processes is not a concern.

The number of processes doing memory intensive stuff at the same time could be a problem :slight_smile:

3 Likes