I have a ruby service running with unicorn which spawns 20 child
worker. When I start my service, unicorn master starts with approx 520
MB of memory and then master spawn 20 child worker. My service runs
perfectly for 7-8 day, but gradually unicorn master memory is kept
increasing and goes up to 1.3 GB, which apparently is causing OOM
error when unicorn master trying to fork a new child (which now need
1.3 GB of memory to fork new child)and due to increased memory
footprint, memory was not available.

So my concern here is,

As per my understanding, Unicorn master doesn't serve any request, its
sole purpose is to spawn missing child then why master process memory
is increasing?
If there is any memory leak in my app then it should impact only child
workers processes, not master process. I am not able to understand why
my master process memory is increasing?

Here is my server config:

Ruby: 2.1.2

Unicorn: 4.6.3

Unicorn worker count: 20

OS: Debian GNU/Linux 8, Jessie

RAM: 24 GB

Thanks & Regards
Sumit Nagariya

Reply via email to