I've just been using apache benchmark. Do they include the server sending the files?
ab? Yes, I think so
Also, is "requests per second" literally how many users can visit the page within one second? If it's at 30 requests per second, can literally 30 people be refreshing pages every second and the server will be fine?
Yes, if they perform exactly the same operations your benchmark does. Which is rarely the case.
It seems like a lot to me.
Yeah, most people would think that 30 requests per second is a very low number, but most sites would get by with that.
Also, will increasing your ram increase you rps linearly? I have 512mb, so if I upgrade to 1gb, would that mean I'd get about 60 rps?
Rarely.
How does concurrency affect your rps?
Well, it goes both ways. You might have concurrency issues, typically locks. Write operations typically lock other writers (and sometimes, writers block readers, or even readers block other readers). If you have locking, concurrent users can slow others.
On the other hand, you can have scenarios such that one users is performing I/O while another one is doing CPU work; these could be parallelized and you would be using your resources more efficiently.
Most of the time, concurrency hits you, though.
Best Answer
The performance of your SPDY setup will obviously depend on the implementation of the stack and you should know the processing cost vs. a 'regular' HTTP or HTTPS session, but.. Keep in mind that that the primary point of SPDY is to reduce the latency and overhead of rendering a typical webpage (as seen by your visitors), not to optimize your server-side response time.
More specifically: if you want to benchmark SPDY, siege/ab and friends are not representative. All of these tools generate load against a single URI and hammer it. This is a useful tactic to stress test your server, but it is far from testing the benefits of SPDY. To test SPDY, you want a tool (browser, most likely), which will download the page, and request all the subresources on the page, allowing you to reuse the SPDY connection.
We recently ran some benchmarks using Chrome for Android, and you can see the setup here: https://developers.google.com/speed/articles/spdy-for-mobile
Finally. If you do need a command line client to test SPDY, checkout spdylay. It ships with
spdycat
which will allow you to make curl-like requests against your server. It's not a benchmarking tool, but it'll get you started.