about summary refs log tree commit homepage
path: root/site/src/docs/how_many_mongrels.page
diff options
context:
space:
mode:
Diffstat (limited to 'site/src/docs/how_many_mongrels.page')
-rw-r--r--site/src/docs/how_many_mongrels.page90
1 files changed, 0 insertions, 90 deletions
diff --git a/site/src/docs/how_many_mongrels.page b/site/src/docs/how_many_mongrels.page
deleted file mode 100644
index 7911293..0000000
--- a/site/src/docs/how_many_mongrels.page
+++ /dev/null
@@ -1,90 +0,0 @@
----
-title: Tuning
-inMenu: true
-directoryName: Tuning
----
-
-h1.  How Many Mongrel Instances Should I Run?
-
-There is no set number that is "best" since that depends on factors like the
-type of application, server hardware, how dynamic the appication is, etc.
-
-I've found that 8-12 mongrel processes per CPU is about right, but I determined
-this by starting with 1 and then doing the following:
-
-h2. Baseline Your Server
-
-Pick a URL to a small file that is running on your apache server and is not
-served by Mongrel at all.  This URL will be your "best possible baseline".
-
-Build your baseline measurement first.  Using httperf, measure the speed of
-your URL so that you know how fast you could possibly get if you served
-everything static in ideal situations.
-
-**Make sure you do this on a different machine over an ideal network.**
-Not your damn wifi over a phone line through sixteen poorly configured routers.
-Right next to the box your testing with a fast switch and only one hop is the
-best test situation.  This removes network latency from your test as a
-confounding factor.
-
-
-h2. Baseline Rails and Mongrel
-
-Pick a page that's a good representative page for your application.  Make sure
-you disable logins to make this test easier to run.  Hit this Rails page and
-compare it to your baseline page.
-
-* If your rails measurement is *faster* than your baseline
-  measurement then you screwed up.  Rails shouldn't be faster than a file
-  off your static server.  Check your config.
-* If your rails measurement is *horribly slow* compared to baseline
-  then you've got some config to do before you even start tuning the
-  number of process.  Repeat this test until one mongrel is as fast as
-  possible.
-
-h2. Tweak
-
-Once you've got a Rails page going at a reasonable speed, then you'll want to
-increase the --rate setting to make sure that it can handle the reported rate.
-
-Finally, alternate between adding a mongrel process and running the test with
-the next highest rate you'd get.  Stop when adding one more server doesn't
-improve your rate.
-
-*Make sure you run one round of the test to get the server "warmed up", and
-then run the real one.*  Heck, run like 5 or 6 just to make sure you're not
-getting a possibly bad reading.
-
-h2. Example
-
-# Run the test and find out that one mongrel can support a @--rate@ of 120 req/second.
-# Add another mongrel and run the test again with @--rate@ 240.  It handles this
-  just find so you add another and get @--rate@ 360.
-# Try another one and it dies.  Giving @--rate@ 480 gets you only a rate of 100.
-  Your server has hit it's max and broke.  
-# Try tuning the @--rate@ down at this and see if it's totally busted (like, 4 mongrels
-  only gets you @--rate@ 380) or if it's pretty close to 480.
-# That should do it.  A good practice is to also look at the CPUs on the
-  server with top and see what kind of thrashing you give the server.
-
-
-h2. HTTPERF
-
-Here's the commands I use for each test, but read the man page for
-httperf so that you learn to use it.  It's an important tool and just
-cut-pasting what I have here is not going to do it for you.
-
-* @httperf --server www.theserver.com --port 80 --uri /tested --num-conns <10 second count>@
-
-* @httperf --server www.theserver.com --port 80 --uri /tested --num-conns <10 second count> --rate <reported req/sec>@
-
-Where @<10 second count>@ is enough connections to make the test run for 10
-seconds.  Start off with like 100 and keep raising it until it goes for 10
-seconds.
-
-Where @<reported req/sec>@ is whatever httperf said the estimated
-requests/second were.  What you're doing here is seeing if it really can handle
-that much concurrency.  Try raising it up and dropping it down to see the
-impact of performance on higher loads.
-
-Have fun.