[erlang-questions] System limit for erlang process and Pid

Mikael Pettersson <>
Sun Oct 16 19:09:39 CEST 2016


ARUN P writes:
 > Hi,
 >      Am a newbie in erlang programming world and I seriously need some 
 > assistance. I am running an application in which am using 
 > *timer:apply_interval(1000, ?MODULE, monitor_loop , [])*, as per my 
 > analysis found that this function call creates new processes at every 
 > 1000 millisecond interval. Since my *monitor loop* function only takes 
 > around 800 ms to complete its duty and then it dies,  the number of 
 > processes are not getting increased. But as per my observation every 
 > time am getting a new PID and the PID number is always increasing and I 
 > came to know that the pid is limited by, 1 word for a process identifier 
 > from the current local node + 5 words for a process identifier from 
 > another node.
 > 
 >      So what will happen if my application continuous to run for months 
 > without stopping, will it crash the entire erlang vm.

No.  The VM is quite capable of running for _years_.

I assume the local pids will wrap around and unused ones be reused, but
I haven't checked this.

 > How the garbage 
 > collection will be happening for the dead process since for every 
 > process some amount of heap memory is getting allocated.

The memory allocated to an Erlang process, including its heap and stack,
is deallocated (not GC:d, more like free()) when that process terminates.


More information about the erlang-questions mailing list