Hi, I've set up a vps at linode with the current Mercury StackScript...it was easy and just worked. Fabulous and I'm stoked to keep going.
But I could use some education on how to know if the stack is performing properly. I'm examining this because in the next week or two it's likely my site is going to be slashdotted if an article comes out about the company on a major media outlet. Naturally, I don't want the site to go down as it did last time on my shared hosting provider. Not much point in getting good press if the site can't stay up.
My natural inclination is to run ab to test how many concurrent users the site can take before the system cries uncle. This site generally has no authenticated users so it's really cached pages I'm most concerned with.
So running:
ab -n200 -c40 http://www.postpeakliving.com/
on the current site (with Boost enabled) returns:
Connection Times (ms)
min mean[+/-sd] median max
Total: 458 1094 206.3 1163 1640Which is pretty good. But:
ab -n500 -c100 http://www.postpeakliving.com/
is pretty much a blowout. The test fails with too many lost connections.
In an another thread I think Josh mentioned that 99 times out of 100 one never runs ab with c greater than 1. This is confusing to me...am I thinking of this the right way? Don't I want to test concurrent connections the way I am to simulate a traffic spike?
When I get this resolved then I'll run the same tests on the Mercury installation to compare results.
Any insight is appreciated.
-André

Comments
In my opinion, ab isn't going
In my opinion, ab isn't going to give you much of a real indication of how many concurrent users your site can handle. You're going to want to use a tool that loads the entire page, not just the HTML. I use Funkload, but JMeter is good, too. Both load the images, CSS, scripts, etc. as well as the page itself and will do a much better job of simulating a real user's browser hitting the site.
Greg, thanks for the tip, I
Greg, thanks for the tip, I didn't realize the difference between the tools.
I've started playing with JMeter and what I don't get is that I seem to be able to put 200 simultaneous users and the graph keeps chugging along just with a higher response time than ab (8s vs the numbers above).
What I don't get is why one fails with high concurrency and the other keeps going. How do I know which one to trust?
Andre Angelantoni
Founder, PostPeakLiving.com
Testing tools fail too
At very-high concurrency rates, you can have failures from your testing tool. Siege will crash, ab and jmeter will get slow and drop connections. The only way to actually test really high concurrencies (above 200) is to use a dedicates server or pool of servers. You should also be monitoring load on your server while all this happens to see the results from "the inside".
Also, you should run your tests longer. 100 threads doing 500 total requests is not going to give you very accurate or meaningful info. I would generally always have your n value be 100x your concurrency.
https://pantheon.io | http://www.chapterthree.com | https://www.outlandishjosh.com
Tool or stie
Ah, I hadn't even thought it might be the tool that was failing (in my case ab). I figured that the site was getting inundated and stopped responding at some point. However, since I wasn't watching from the inside I didn't know for sure.
I'll make some adjustments and see what comes up.
Andre Angelantoni
Founder, PostPeakLiving.com
Using ab or infact JMeter to
Using ab or infact JMeter to load test Mercury or any Drupal is obviously better than no testing at all. I think it is important to remember to set up something in your test that will clear the cache. For instance lots of modules clear the caches on cron run. You should probably then run a cache clear as often as cron runs on your test environment. Or in fact actually run cron in the environment you are load testing.
Full Fat Things ( http://fullfatthings.com ), my Drupal consultancy that makes sites fast.