Im using the standard Ruby-on-Rails WEBBRICK server.
Im testing and If I have two or three connections simultaneously on very intensive scripts (which I let fully execute without timeouts) is it normal for them to stack (i.e complete the next task once the previous one completes – many simultaneous connections but only one is processed at a go)?
1) Is this behaviour normal?
2) How would I escape this, is Thin recommendable?
The rails server (webrick) is really only intended for local testing in development; a single instance runs, and requests will block on each other. Thin is a better choice as it does know how to handle multiple processes. Some people use Apache or Nginx in front of Thin for production servers. Passenger is a similar option that is also popular.
So yeah, install Thin for more realistic testing.
P.S. If you are hosting on Amazon EC2, their micro- and small instances only have a single CPU, so even if you have multiple processes accepting requests, if they are bound by the CPU, they’ll act as though they are blocking on each other. (This may not be relevant to your question, but several long days of my life were spent figuring this out :-).