Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Ask YC: What do you use to stress test your app/db?
20 points by kashif on March 16, 2008 | hide | past | favorite | 21 comments
I am particularly interested in making database read/write requests through the web app.

My app is in Python(Pylons), the datastore is an ODBMS based on ZopeDB, server and client(me) are running Linux.



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.


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.


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.



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.


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


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


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


This actually works in many cases.


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.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: