

Ask YC: What do you use to stress test your app/db? - kashif

I am particularly interested in making database read/write requests through the web app.<p>My app is in Python(Pylons), the datastore is an ODBMS based on ZopeDB, server and client(me) are running Linux.
======
dmharrison
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...](https://h10078.www1.hp.com/cda/hpms/display/main/hpms_content.jsp?zn=bto&cp=1-11-126-17%5E8_4000_100__)

~~~
nickb
How much does Load Runner cost? Thousands of $$?

~~~
dmharrison
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.

------
epi0Bauqu
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.

~~~
kashif
I am using Pythonpaste's webserver - does this only work on apache? httpunit
looks interesting...

~~~
inklesspen
No, it's just HTTP. It just happens to come with apache, that's all.

~~~
epi0Bauqu
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.

~~~
kashif
Thanks, I am using Siege which does this and a bit.. If i am going to learn
anything new then httpunit it is.

------
ericb
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.

------
dedalus
I use autobench (<http://www.xenoclast.org/autobench/>)

~~~
kashif
Autobengh is a wrapper around httpperf.

------
god
I let the masses use it an see, which scripts and queries use the most
resources.

------
staunch
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.

------
henning
JMeter. I have an ant task that does it automatically.

~~~
sfalbo
I like JMeter too. I've just started using it and I've been very happy with
it.

------
axod
Throw it up and wait for the email complaints from customers :)

~~~
wlievens
This actually works in many cases.

------
nonrecursive
httperf, ftp://ftp.hpl.hp.com/pub/httperf/httperf-0.9.0.tar.gz

------
gordonguthrie
Tsung (<http://tsung.erlang-projects.org/>) - an Erlang-based performance
testing tool.

------
omarish
siege

------
christefano
Apache JMeter and ApacheBench.

