Best way to stress test a rails web app?
Are there any good (preferably free) tools out there?
Can they give accurate estimates that reflect production results when the app goes live?
This is definitely not a free solution, but webmetrics will get the job done. (As well as any website monitoring company in general). They give thorough reports on your web site's performance, and when you schedule load tests you can specify how much load you want to simulate (e.g. simulate 2000 users using my site at once).
I don't think it will break it down and tell you your CPU usage and such, as they stress your website from their servers.
I would personally go with Apache Bench http://httpd.apache.org/docs/2.0/programs/ab.html
It's free, straight forward to use and lightweight.
If you are looking for a something a little more robust then I think Apache JMeter might be worth looking at. http://jmeter.apache.org/. Again, it's free, a bit of a learning curve and has a GUI so a little heavier.
You might also want to take a look at this Q/A Performing a Stress Test on Web Application?
WebLoad is open source:
There's a good summary of tools here.
Rails comes with performance testing built in: http://guides.rubyonrails.org/performance_testing.html
You can try Trample, it is load simulation tool here
If you want to visualize performance instead of just look at the numbers you might try Engulf. It's Open Source Software, distributed, and high-performance. http://engulf-project.org/#usage Disclaimer: It's a project I work on.