Ask YC: What do you use to stress test your app/db?
12 comments
The grinder http://grinder.sourceforge.net/ (write your scripts in jython) for unit and nightly runs and for large scale testing on partners hardware HP (formerly mercury) Load Runner https://h10078.www1.hp.com/cda/hpms/display/main/hpms_conten...
How much does Load Runner cost? Thousands of $$?
Yep, ridiculously expensive, grinder is good enough. In the enterprisey space where my day job is, load runner has a certain reputation (despite whether it deserves it or not). We found with the open source or cheaper tools (IBM rational tools included) under really high loads logging, measurements and the tools themselves got flaky. When you've got extremely limited time and hard deadlines in a hardware lab, time is the most precious commodity, so the cost can be worth it.
ab is a quick and dirty way: http://httpd.apache.org/docs/2.0/programs/ab.html
You can send it particular URLs that do your desired DB read/write requests.
For more in depth testing, I've heard HttpUnit is good (http://httpunit.sourceforge.net/), though I don't have much experience with it.
You can send it particular URLs that do your desired DB read/write requests.
For more in depth testing, I've heard HttpUnit is good (http://httpunit.sourceforge.net/), though I don't have much experience with it.
I am using Pythonpaste's webserver - does this only work on apache?
httpunit looks interesting...
No, it's just HTTP. It just happens to come with apache, that's all.
Right. Here's a simple example:
ab -n 10000 -c 25 http://your.com/your.py
10000 hits, with 25 concurrent requests. You can keep cranking up -c n and see what happens. This is also useful for testing your network capability, e.g. simultaneous connections, from a fast remote network.
ab -n 10000 -c 25 http://your.com/your.py
10000 hits, with 25 concurrent requests. You can keep cranking up -c n and see what happens. This is also useful for testing your network capability, e.g. simultaneous connections, from a fast remote network.
Thanks, I am using Siege which does this and a bit..
If i am going to learn anything new then httpunit it is.
I'm working on a hosted load testing solution for this type of problem. Specifically, it will let you run full transactions against a web front-end. You record a script with your web browser and then upload it, and run a mass of virtual users executing those steps.
If you want an update when it's ready, shoot me an email. On gmail, I'm ebeland.
If you want an update when it's ready, shoot me an email. On gmail, I'm ebeland.
I use autobench (http://www.xenoclast.org/autobench/)
Autobengh is a wrapper around httpperf.
I let the masses use it an see, which scripts and queries use the most resources.
I use ab for simple things and siege for more involved benchmarking. I write my own functionality tests in Perl with WWW::Mechanize for monitoring.
httperf, ftp://ftp.hpl.hp.com/pub/httperf/httperf-0.9.0.tar.gz
Tsung (http://tsung.erlang-projects.org/) - an Erlang-based performance testing tool.
siege
Apache JMeter and ApacheBench.
My app is in Python(Pylons), the datastore is an ODBMS based on ZopeDB, server and client(me) are running Linux.