I have just finished a draft of my Ruby web server review, I have uploaded it to my scribd account, This is still a work in progress and I am looking at improving it further and may be include Unicorn tests as well.

Here is the document:
The Ruby 19x Web Servers Booklet
While at the topic of Ruby web servers, I highly recommend this article by Ryan Tomayko on Unicorn’s architecture.
Edit: I didn’t know that scribd requires you to login before you can download the files, here is a direct link

Tags

19 responses to “The Ruby 19x Web Servers Booklet”

  1. Fred the Magic Wonder Dog Avatar
    Fred the Magic Wonder Dog

    Thanks, that is a nice public service.

  2. Josh Avatar
    Josh

    Thanks for taking time to do this. It is a very helpful comparison of the options, and a good primer on how the server piece works.

  3. oldmoe Avatar
    oldmoe

    Thanks @Fred and @Josh, I hope it could be useful to some.

  4. Sheldon Hearn Avatar
    Sheldon Hearn

    Awesome doc. Would love to see Unicorn thrown into the mix.One thing. After all that great review, it was very disappointing to see "requests/second" used as the benchmark.See http://www.therailsway.com/2009/1/6/requests-per-second for a solid motivation against this benchmark.Would love to see the results with a more meaningful benchmark like "seconds/request".

  5. Denis Avatar
    Denis

    Thanks for sharing. I'd like to suggest just posting the PDF file rather than use scribd – it's a real pain to read and they make it hard to download.

  6. Oleg Andreev Avatar
    Oleg Andreev

    On page 14/60 you say that it is useless to select() real file descriptors. Could you please point to some literature on asynchronous disk i/o? I wonder why so many applications block UI on disk operations or the whole OS slows down on a heavy disk i/o.

  7. oldmoe Avatar
    oldmoe

    @Sheldon, I beg to differ, avg-seconds/request is identical to requests/second, you can do the math to move from one to the other. What I wanted to do but didn't have enough time and energy to do is latency distribution. Which besides reporting the avg-seconds/request it also reports min and max time and values for the different percentiles. The remarks on EM in the analysis section hint to that but I think it could have been much better if I expanded on this.@Denis, I am not sure what's wrong with their download process, I just click download and I get the file, am I missing something? you are not the only one to complain.@Oleg, please have a look at this and this

  8. poll Avatar
    poll

    Well, nice article buddy… Someone will love to read this infor if I tell her about this. She’s really interested in this subject. Thanks again… Please come visit my site Charlotte City Directory when you got time.

  9. poll Avatar
    poll

    Wow, loving the two photos you posted. You got potential. Please come visit my site Raleigh Business Directory when you got time.

  10. kris Avatar
    kris

    Very enjoyable read!

  11. uri Avatar
    uri

    Is it possible to download a PDF w/o opening an account with Scribd. I'd rather not.10x

  12. Denis Avatar
    Denis

    @oldmoe I didn't have an account with scribd and although I signed up just to get your document, it's a relatively cumbersome process. They don't really add anything – why not just upload the PDF to your blog?

  13. oldmoe Avatar
    oldmoe

    @Denis, apologies, I didn't know that scribd required login before you can download. I have edited the post and added a direct download link

  14. Sheldon Hearn Avatar
    Sheldon Hearn

    Yes, if you only look at mean seconds per request, it's the same.But there's more available from the data than the mean. In particular, there's maximum, mode and standard deviation.When your focus is on latency instead of throughput, you see different things. And they're the things that typically matter more to the consumer of the service, who really doesn't care about your other consumers.What you've produced (and released for free) is already very valuable contribution to understanding how web application servers work.I'm just suggesting a way you could add even more value, because I suspect that measuring latency may unearth some surprises. If you don't share my suspicion, that doesn't lessen the value you've already contributed.Thank you.

  15. oldmoe Avatar
    oldmoe

    @Sheldon, I totally agree btw regarding the importance of latencies :). And not I am not just suspicious, I have seen some strange distributions during the tests that need to be investigated further. I have a feeling that EM based servers will show higher latencies for concurrent long requests.I really wanted to do a latency distribution for that document but couldn't afford it time wise (much easier to record and graph single numbers). I hope I can update the document with some latency data but I think the highest value currently would be the inclusion of Unicorn and Rainbows.

  16. poll Avatar
    poll

    Wow! Thank you! I always wanted to write in my site something like that. Can I take part of your post to my blog? Please come visit my site Minnesota Internet Resource Business Yellowpages when you got time.

  17. poll Avatar
    poll

    Wow! Thank you! I always wanted to write in my site something like that. Can I take part of your post to my blog? Please come visit my site Mississippi Community Forums Classifieds when you got time.

  18. dayne Avatar
    dayne

    I noticed a typo(?) in one of the code examples. On p10 UnixSocket.pair should be UNIXSocket.par

  19. Muhammad Hassan Avatar
    Muhammad Hassan

    Nice work! Excellente!

Leave a reply to Sheldon Hearn Cancel reply