Hi Eric, Sorry for my late response, somehow missed your mail. Just to update I managed to fix the issue, it was related to GC. We were using unciron's oob_gc to control gc execution. Although we had correct configuration for oob_gc but somehow it was not allowing GC to run. I checked GC stat and found that major & minor GC count is consistent over the time. I removed oob_gc and now using gctools gem. With gctools gem master memory is consistent to ~400MB.
Thanks a lot for your help. Regards, Sumit On Thu, Apr 19, 2018 at 8:15 AM, Eric Wong <e...@80x24.org> wrote: > Hleb: remember to reply-all, we will never require subscription > to post to this list, so it's likely sumit never saw it. > > Hleb Valoshka <375...@gmail.com> wrote: >> I believe it's hard to say something without your unicorn configuration file. > > sumit: what Hleb asked... > > I suspect "preload_app true" in your config is loading something > in your app which is using up your memory. Sometimes there's > monitoring threads which might fill a queue up or something. > > Anything in error logs? Failing that, strace (on Linux) might > tell you what's going on at the error level. > > But yeah, the master process shouldn't be doing anything besides > listening to signals and respawning failed workers. > > If you want to check if there's monitoring threads on Linux > systems with /proc mounted, you can see how many threads the > master has: > > ls /proc/$PID_OF_MASTER/task/ > > There should be two entries for Ruby 1.9-2.5(*), one being the > master PID and one for the timer-thread. If you have more, > then that's probably some thread doing stuff in the > background... > > (*) _maybe_ we can get rid of timer-thread for 2.6... -- Thanks & Regards Sumit Nagariya