From: Konstantin Gredeskoul <kig@wanelo.com>
To: unicorn list <mongrel-unicorn@rubyforge.org>
Subject: Re: Unused Unicorn processes
Date: Mon, 20 Aug 2012 17:44:44 -0700 [thread overview]
Message-ID: <CAD2+hjctLVtn_+PQALbXMGz_reSSdTue5LW+g3Vy53=CmksYDg@mail.gmail.com> (raw)
In-Reply-To: <mailman.0.1345509654.31187.mongrel-unicorn@rubyforge.org>
Greetings!
I have a question on optimal # of unicorn worker processes.
We are running Unicorn 4.3.1 + Rails 3.2.6 (without threading), on
ruby 1.9.3-p194, hosted on SmartOS/Joyent.
At the moment, unicorns are configured to start 30 worker processes. I
know this is a lot, and I am going to reduce this number. But in
trying to figure out what is a more appropriate number of workers to
run, I noticed something interesting that I couldn't explain.
If I look at the process table on each machine (see top output below),
I notice that some unicorn processes are heavily used (and have
accumulated longer CPU times, as well as have grown their RAM usage
since boot time), but other processes (at the bottom of the top
output) appear to potentially not having been used at all. There are
several processes with RSS size of 143Mb, which I believe is unicorn
size before it processes any requests.
What I am gathering from this, is that only 16 unicorn processes are
actually processing requests, while the rest are just sitting there
idle.
Is this expected behavior?
This Joyent SmartMachine can burst up to 8 cores. Given that our web
requests spend only 80% of their time in ruby, I figured we could run
10 unicorn processes for maximum efficiency. However seeing that 16
are actually used I am curious whether 16 is actually a better number.
Any suggestions appreciated!
load averages: 2.07, 1.97, 2.09; up 14+01:56:
58 processes: 53 sleeping, 5 on cpu
CPU states: 77.1% idle, 18.2% user, 4.7% kernel, 0.0% iowait, 0.
Memory: 8192M phys mem, 3157M free mem, 16G total swap, 11G free sw
PID USERNAME LWP PRI NICE SIZE RES STATE TIME CPU COMMAND
24800 wanelo 18 59 0 337M 313M sleep 17:21 2.05% ruby
24788 wanelo 18 59 0 223M 200M cpu/14 16:34 3.18% ruby
24787 wanelo 18 59 0 221M 197M sleep 14:55 1.89% ruby
24776 wanelo 18 59 0 217M 193M cpu/2 18:17 3.45% ruby
24804 wanelo 18 59 0 216M 192M cpu/8 7:54 0.33% ruby
24785 wanelo 18 59 0 211M 187M sleep 14:33 0.75% ruby
24783 wanelo 10 59 0 209M 185M sleep 16:09 2.16% ruby
24775 wanelo 18 59 0 205M 181M sleep 5:24 0.03% ruby
24777 wanelo 10 59 0 205M 181M cpu/11 3:53 1.54% ruby
24799 wanelo 18 59 0 204M 179M sleep 0:42 0.00% ruby
24803 wanelo 18 59 0 202M 177M sleep 2:28 0.35% ruby
24802 wanelo 3 59 0 195M 168M sleep 1:45 0.01% ruby
24778 wanelo 3 59 0 192M 165M sleep 1:06 0.01% ruby
24801 wanelo 3 59 0 189M 162M sleep 0:50 0.01% ruby
24798 wanelo 3 59 0 188M 161M sleep 0:30 0.00% ruby
24797 wanelo 3 59 0 187M 159M sleep 0:19 0.00% ruby
--- unicorns below this line do not appear to be used
24795 wanelo 3 59 0 173M 142M sleep 0:08 0.00% ruby
24792 wanelo 3 59 0 172M 142M sleep 0:07 0.00% ruby
24779 wanelo 3 59 0 172M 143M sleep 0:05 0.00% ruby
24796 wanelo 3 59 0 172M 142M sleep 0:12 0.00% ruby
24790 wanelo 3 59 0 172M 142M sleep 0:06 0.00% ruby
24793 wanelo 3 59 0 172M 142M sleep 0:06 0.00% ruby
24781 wanelo 3 59 0 172M 142M sleep 0:05 0.00% ruby
24791 wanelo 3 59 0 172M 142M sleep 0:04 0.00% ruby
24794 wanelo 3 58 0 172M 142M sleep 0:10 0.00% ruby
24784 wanelo 3 59 0 172M 142M sleep 0:04 0.00% ruby
_______________________________________________
Unicorn mailing list - mongrel-unicorn@rubyforge.org
http://rubyforge.org/mailman/listinfo/mongrel-unicorn
Do not quote signatures (like this one) or top post when replying
next parent reply other threads:[~2012-08-21 0:46 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <mailman.0.1345509654.31187.mongrel-unicorn@rubyforge.org>
2012-08-21 0:44 ` Konstantin Gredeskoul [this message]
2012-08-21 9:11 ` Unused Unicorn processes Eric Wong
2012-08-22 18:16 ` Konstantin Gredeskoul
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://yhbt.net/unicorn/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to='CAD2+hjctLVtn_+PQALbXMGz_reSSdTue5LW+g3Vy53=CmksYDg@mail.gmail.com' \
--to=kig@wanelo.com \
--cc=mongrel-unicorn@rubyforge.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://yhbt.net/unicorn.git/
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).