apache

SPDY and webperformance

Robert M. White
TL;RD

  1. Performance matter for all websites
  2. Performance is not just (80%) frontend
  3. SPDY kills 80% of your frontend problems

What
In the Drupal and broader web community, there is a lot of attention towards the performance of websites.

While "performance" is a very complex topic on its' own, let us in this posting define it as the speed of the website and the process to optimize the speed of the website (or better broader, the experience of the speed by the user as performance.

Why
This attention towards speed is for two good reasons. On one hand we have the site that is getting bigger and hence slower. The databases get bigger with more content and the the codebase of the website is added with new modules and features. While on the other hand, more money is being made with websites for business even if you are not selling goods or run ads.

Given that most sites run on the same hardware for years, this results in slower websites, leading to a lower pagerank, less traffic, less pages per visit, lower conversion rates. And in the end, if you a have a business case for your website, lower profits. Bottemline: If you make money online, you are losing this due to a slow website.
UFO's
When it comes to speed there are many parameters to take in to account, it is not "just" the average pageloading time. First of all the average is a rather useless metric without taking the standard deviation into account. But apart from that, it comes down to what a "page" is.

A page can be just the HTML file (can be done in 50ms)
A page can be the complete webpage with all the elements (for many sites around the 10seconds)
A page can be the complete webpage with all elements including third party content. Hint: did you know that for displaying the Facebook Like button, more Javascript is downloaded then the entire jQuery/backbone/bootstrap app of this website, non cacheable!
And a page can be anything "above the fold"



Moon Retro future
And then there are more interesting metrics then these, the time to first byte from a technologic point of view for example. But not just technical PoV. There is a website one visits every day that optimzes its' rendable HTML to fit within 1500 bytes.
So ranging from "First byte to glass" to "Round trip time", there are many elements to be taken into account when one measures the speed of a website. And that is the main point: webperformance is not just for the frontenders like many think, not just for the backenders like some of them hope, but for all the people who control elements elements in the chain involved in the speed. All the way down to the networking guys (m/f) in the basement (hint sysadmins: INITCWND has a huge performance impact!) Speed should be in your core of your team, not just in those who enable gzip compression, aggregate the Javascript or make the sprites.

Steve Souders (the webperformance guru) once stated in his golden rule that 80-90% of the end-user response time is spent on the frontend.

Speedy to the rescue?
This 80% might be matter of debate in the case of a logged in user in a CMS. But even if it is true. This 80% can be reduced by 80% with SPDY.
SPDY is an open protocol introduced by Google to overcome the problems with HTTP (up to 1.1 including pipeling, defined in 1999!) and the absence of HTTP/2.0. It speeds up HTTP by generating one connection between the client and the server for all the elements in the page served by the server. Orginally only build in chrome, many browsers now support this protocol that will be the base of HTTP/2.0. Think about it and read about it, a complete webpage with all the elements -regardless of minifying and sprites- served in one stream with only once the TCP handshake and one DNS request. Most of the rules of traditional webperf optimalisation (CSS aggregation, preloading, prefetching, offloading elements to different host, cookie free domains), all this wisedom is gone, even false, with one simple install. 80% of the 80% gone with SPDY, now one can focus on the hard part; the database, the codebase. :-)

The downside of SPDY is however that is is hard to troublshoot and not yet avaliable in all browsers. It is hard to troubleshoot since most implementations use SSL, the protocol is multiplexed and zipped by default and not made to be read by humans unlike HTTP/1.0. There are however some tools that make it possible to test SPDY but most if not all tools you use every day like ab, curl, wget will fail to use SPDY and fallback like defined in the protocol to HTTP/1.0

Measure
So can we test to see if SPDY is really faster and how much faster?
Yes, see Evaluating the Performance of SPDY-Enabled Web Servers (a Drupal site :-)
SPDY performance

So more users, less errors under load and a lower page load time. What is there not to like about SPDY?

Drupal
That is why I would love Drupal.org to run with SPDY, see this issue on d.o/2046731. I really do hope that the infra team will find some time to test this and once accepted, install it on the production server.


Performance as a Service
One of the projects I have been active in later is ProjectPAAS, bonus point if you find the easteregg on the site :-) . ProjectPAAS is a startup that will test a Drupal site, measure on 100+ metrics, analyse the data and give the developer an opinionated report on what to change to get a better performance. If you like these images around the retro future theme, be sure to checkout the flickr page, like us on facebook, follow us on twitter but most of all, see the moodboard on pinterest

Pinterest itself is doing some good work when it comes to performance as well. Not just speed but also the perception of speed.

Pinterest lazyloading with color
Pinterest does lazyload images but also displays the prominent color as background in a cell before the image is loaded, giving the user a sense of what to come. For a background on this see webdistortion


Congratulations you just saved 0,4 seconds
If you are lazyloading images to give your user faster results, be sure to checkout this module we made; lazypaas, currently a sandbox project awaiting approval. It does extract the dominant (most used) color of an image and displays the box where the image will be placed with this color. And if you use it and did a code review, be sure to help it to get it to a real Drupal module.


From 80% to 100%
Lazyloading like this leads to better user experience. Because even when 80% of the end-user response time is spent on the frontend, 100% of the time is spend in the client, most ofthen the browser. The only place where performance should be measured and the only page where performance matters. Hence, all elements that deliver this speed should be optimized, including the webserver and the browser.

Now say this fast after me: SPDY FTW. :-)

Pong access.log with logstalgia

Let your webservers accesslog be the source of a game of pong :-)

If you are a brew OSX user, a oneliner to install :-)

see logstalgia

Drupal at FOSDEM 2010


( source flickr, copyright faerie)

Next weekend on Sunday, February 7, we'll have a full day of Drupal talks at the 10th edition of FOSDEM, Europe's biggest, free-est and open-est software conference.

FOSDEM, is a free and non-commercial event organized by the community, for the community. Its goal is to provide Free and Open Source developers a place to meet. The Drupal project was granted a developer room at FOSDEM to do exactly that: to share knowledge about Drupal.

The presentations schedule for the devroom was published a week ago on http://groups.drupal.org/fosdem. It features interesting speakers such as Robert Douglass, Károly Négyesi, Roel de Meester and Kristof van
Tomme and even more interesting subjects as mobile device design, AHAH, eID and Views 3. Everyone is invited to attend the presentations.

On Friday the giantesque beer event kicks off the conference. For Drupalistas there is a sprint on Saturday in Zaventem.

Please join, I have been to a couple of FOSDEM's and if you ever attended an Oreilly or Gartner con, you are in for a surprise :-)

FOSDEM takes place at ULB Campus Solbosch in Brussels.

Willy moved

The End of Willy

I finnaly moved this website from my 15 year old pentium 166 with a load over 20 to some better iron, some decent 3 year old hardware. The new machine had a newer PHP version and my /ancient/ Drupal install was fine with that. However, I was unable to log in. Took me some time to see if this was caching or Cookie related but found it, adding
register_shutdown_function('session_write_close');
to the sessions.inc did the trick

So this website should be more stable now, and faster. I will get a new ADSL line in a couple of week upgrading to 20Mb so should be even faster in some time. With some downtime however, I will get a new IP address as well and need to change my zones when I know what this address will be.

Thank you bas for giving me "havenmeester" (aka tug) 5 years ago. Even at that time dated hardware but served me well. It is just that the fan of the CPU makes an enormous amount of noise now.

shutdown -h now.

We salute you Tug, the oldest webserver on the net :-)

Dries on the Advisory Council of the Open Source Lab

What do Apache, Perl, Drupal, the Linux operating system, Google, Novell, Acquia and Joost have in common?

Leaders of these companies / Open Source projects are now all on the advisory council of the OSUOSL as you can read on the advisory page at OSUOSL and Oregonlive.com

OSUOSL is -for those who don't know- the hosting and housing party of many open source projects, such as Linux (the kernel), MythTV, Mozilla, Apache, Gnome and yes... Drupal!

Dries on the advisory council is great recognition of his talents but more, important for Drupal. We -the Drupal community- now have a more direct line towards the OSUOSL, more the "just" on the operational level we now have a line towards a more tactical / strategical level. That and Dries (and thereby the Drupal community) now has an even better connection towards Apache, Perl, the Linux operating system, Google, Novell and Joost.

I have been in datacentre and Internet routing for a bigger part of my career and the service we get from OSUOSL is worth a couple of k's per month, and we get that for free! So you might want to sponsor rack 2 of OSUOSL and thereby getting even closure to Drupal!

Congrats to Dries (well deserved) and good news for Drupal as well!

XML feed