Play PackRat on Facebook: our feverishly addictive new game

Channel your server rage - help the Chefs!

Hey peeps. As everyone is aware, our beloved IB community has grown! It also certainly hasn't gone unnoticed that there have been some growing pains too, with so many more people pummelling the IB servers over many time zones.

So. My thought was that there are (tens of?) thousands of creative people here. It's very likely that many of you are experienced in running advanced websites. I figure that between us we might just be able to come up with some ideas to help the Chefs improve the performance of the 'Buffet.

As I figure (I think this is the basic setup...), experience in any of the following may prove useful in this exercise:

* advanced XHTML/CSS/HTTP performance
* Ruby on Rails performance tuning
* MySQL (presuming here)
* website performance tuning (notice a theme here? ;)
* server administration (IB runs on Nginx 0.5.14)
* community-driven website administration

I'm not suggesting that this is an exhaustive list, just trying to get brains ticking over.

Rules!

* be helpful
* suggest everything
* don't be offended if someone's already thought of it
* make constructive comments
* be nice!

Any takers? :)

PS. Chefs, please don't be offended here... we're just a friendly community trying to contribute a bit more! :D

Posted by rotassator on Aug 13, 2007 in Blab | 8 comments

xentek on Aug 13, 2007

I don't think this is very useful to the chefs.
Performance tuning is not something you can do from the back seat - your hands must get dirty - and you must measure the results religiously to get anywhere. Posting a bunch of suggestions with out even knowing their architecture, would be an exercise in posturing and futility.

Just my 2 cents.

rotassator on Aug 13, 2007

OK, fair comment.

However, I still think there's some community wisdom that might be useful. I'm willing to see what the community might come up with...

So here's my suggestion.

Because of the vast number of icon sets the Chefs have lovingly crafted, many of the pages served require heaps of requests to the server. For example, to display my profile page, a browser has to make 153 requests to the server.

Whoa. That's huge! Even with superfast broadband, that's going to take a while to transfer.

Quick breakdown:
* 12 requests for Javascript files
* 35 background images
* 101 inline images
* 2 form button images
* 1 XHTML file
* 1 favicon
* 1 stylesheet

Caching, you say? Sure. That helps after the first load. Except that the browser needs to send a header anyway to see if the file has changed since last access. Ouch.

Except when each the server sets an Expires header for each file!

Recommendations, where possible:

* combine Javascript files to reduce requests
* put links to Javascript files at the bottom of the (X)HTML (page won't display until the .js files are loaded!)
* set Expires headers for thumbnails (or any file if you add a unique ?ID) to some date in the far future so the browser doesn't have to check if the file has changed. See Thirteen Simple Rules for Speeding Up Your Web Site for details.

Am I pipedreaming? Is this a futile exercise?

ZsaZsa on Aug 13, 2007

I sort of see myself as a guest in their house.
My feeling is we should leave it to them. They are clearly capable and it's their business, literally.
Also, they are kind of pioneers with a Ruby on Rails application serving out graphic rich content to this many people. So it's not like they can pick up the phone and find an expert - they are the experts.
But you are cool to offer ;0)

elnitido52 on Aug 13, 2007

Aye!

rotassator on Aug 13, 2007

Hmmm... maybe I'm being a bit presumptuous with this post after all.

Sorry if I've stepped on any toes. In case it was misunderstood, the reference to "server rage" is to comments left by people frustrated by recent server issues.

Just to be sure that it's crystal clear... Chefs, we DO love your work. Yes. We do. And I think you guys have done a sterling job with every aspect of the site. Awesome work. The thought just occurred to me that our community might be able to give something back using our collective experience that might help this growing community.

I'll let this post run for a bit longer and if the sentiment is still the same, I'll close down the post.

elnitido52 on Aug 13, 2007

I know is some kind of annoying, but make sure the chefs Arrrrrr... working that out!

rotassator on Aug 13, 2007

*chuckle*

72dpi on Aug 13, 2007

Rotassator, U wanna design the backend of my new site? =)
153 DB queries is way too much for sure. perhaps Server Farm Load balancing?

Also, prototype is 70kb alone, perhaps getting a compressed version for starters, then only calling/including the extra JS when needed. I am playing with jquery, it's intial size is 20kb (compressed), and most functions that run on this site could easily be ported to it.

i love this site, so best wishes for Server performance!