Did you ever stop and think about how much energy you consume? Yes, you personally... and your family.  I think about it all the time.  I turn off lights, adjust the thermostat, consolidate my trips to reduce fuel consumption and turn off the TV when not watching.  I’m sure you do the exact same thing.  The cost of all forms of energy is continuously increasing especially in the last few years.  But have you ever thought about how much energy you consume when you click a link on a web page or send an email... probably not - and neither have I until now. 

I do a great deal of research into how efficiently energy is used in various systems and processes and I’m constantly on the Internet accessing websites.  Recently in a meeting, a fellow executive made a comment that hiding behind the cost of your Internet broadband connection and home computers were hidden energy drains.  These were the infrastructure and servers that manifest the information super-highway.  How much power was consumed because you wanted to see the latest top video on YouTube?  What if you didn’t click it? How much power would you save? How much carbon dioxide did you save from our atmosphere?  I thought, "Wow" what an interesting question...  Now, can we answer that question? That’s the question.  This is a monumental task... and difficult to estimate (but that’s never stopped me before), so we’ll have to examine exactly what happens when you access a website and make some assumptions to reach a reasonable conclusion.  Here goes...

First we need to consider what happens when you "click" a link in a browser.  The browser must first connect to the target server so it can request the page associated with the link in the page.  This is accomplished using Transport Control Protocol (TCP) and is similar to placing a phone call to the server.  Once the server "answers" and establishes the connection, the browser forms a request packet for the page tied to the link.  This request asks the server to send the contents of the page back to the browser.  If the page address is valid, the server then responds with a stream of packets that identify it as a valid server response along with all of the Hypertext Markup Language (HTML) contents plus other information such as scripts, meta-data, formatting and others.  Once all of the contents of the request are delivered to the browser, the connection is ended and the information is rendered into something the user can see and read.  Modern browsers actually make multiple connections and requests simultaneously to fill in images and other sections of the page.  This makes the rendering much faster and provides a smoother appearance to the user (See below).

Http_transaction_3

The process above takes place between two computers usually separated by a vast distance.  It is very reasonable to expect most web accesses made by a user reach servers that are located anywhere from hundreds to thousands of miles away.  Between the two computers is a vast network of switches and routers - a "highway" for the data packets.  Like railroad trains, the packets travel from your cable modem over your cable network (the local spur line) to the central office.  There the packets are switched to higher bandwidth fiber optic cables (main rail lines) using very short pulses of laser light which travel extremely far.  The packets may transition several major switching stations before being routed to the local network connected to the distant server.  What’s interesting is that the messages between the computers will often require multiple packets and, like trains, may arrive at different times out of order from what was sent.  This occurs due to traffic conditions along the way, again like trains on a railroad, the data routers find the most efficient path to deliver the packets resulting in varying arrival times.  One job of the receiving computer is to re-order the information and pass it on to the high level software for interpretation.

All of the technology to accomplish this transaction requires power - from the computers at both end (yours and the distant server) to the networking equipment and networks in between.  As mentioned earlier, to estimate the power consumed in loading a web page we need to make some assumptions.  For this estimate, we’ll ignore the power in the local computer and home network infrastructure - this would be considered already spent in the local budget regardless of the Internet accesses.  We will only consider power consumed by everything external to your location. 

Next we’ll need to consider the page contents and how many packets would be required to move the information back to your browser.  Our "typical" page will have no video since that is most often streamed and holds the connection open (like a long phone conversation with your best friend - only they do all the talking).  It will have 3 graphics that average 100kb each and about 5000 characters of information (e.g. a Wikipedia or news page).  The total page contents will require approximately 310kb to be transferred from the server to the browser.  Upstream from the browser, there will be at least 4 requests (1 for the page, 3 for the images).  The requests will occupy only about several hundred bytes of data, so in total the one web page request will move about 315kb of data (which includes all the connection overhead) between the two computers. 

Now that we have an understanding of how much information is transferred between the two machines, we need to examine how much additional networking equipment the information crosses and the power consumed.  We’ll assume the cable head end has a modem, a switches and a router - totaling approximately 200 watts.  The high speed connection on the Internet side of the router probably has a fiber link with an interface box (another 100 watts).  We’ll assume the packets make 3 jumps to other routers along the way.  Each jump will have 2 fiber boxes and a high speed router (to simplify) for a total of 300 watts for each jump.  The server farm will have one fiber box, a router and switches which adds an additional 300 watts.  The total network power for that link is approximately 1500 watts.  Last, we need to consider the average power of a modern blade server - let’s assume it averages around 50 watts.

Now that we have a scientific guess at the power numbers, it gets a bit complicated.  We need to know how much time your data used each piece of equipment so we can get watt-hours, a measure of energy.  Let’s examine the various speeds starting with the cable side.  Typical Data Over Cable System Interface Specification (DOCSIS) cable modem will have an aggregate bandwidth of around 152 Mbps (Mega-bit per second) down stream and 108 Mbps upstream (to the server).  To simplify the calculation for time that the packets stay on that leg of the network, we’ll use the upstream data rate of 108 Mbps.  We’ll also assume the fiber legs are OC-12 (Optical Carrier 12) with data rates of around 601 Mbps (622 Mbps - 21 Mbps overhead).  The final leg inside the web server’s infrastructure will most likely be a 1 Gbps (gigabit per second) Ethernet path.

To normalize all of these varying power-speed numbers, we’ll turn to a metric used by my company, National Semiconductor to rate the power consumption of interface devices.  This breaks down the speed and power numbers into one unit of measure in units of energy per bit (Joules/bit - see PowerWise® Solution Metrics).  I’ve also mentioned this method in a previous blog (The Efficiency of Moving Bits) and it allows us to greatly simplify calculating all the various speed-power numbers.  Table 1 shows how we figure out the picojoules per bit for each hop the data takes. The total energy per bit is roughly 4.6 microjoules per bit.

Table 1 - Network Energy Consumption
Network Equip. Power Data Rate pJ/bit Value
Cable (DOCSIS) 300 W 108 Mbps 2.8 uJ/bit
Fiber (OC-12) 900 W (3 x 300) 601 Mbps 1.5 uJ/bit
Ethernet 300 W 1000 Mbps 0.3 uJ/bit
TOTAL 4.6 uJ/bit

The server blade usage will vary, but we’ll assume a fully loaded server providing 2000 pages per second.  Your page will then occupy one access of that or 1/2000 of 40 watts or 0.02 watt-seconds (Joules).  Now let’s see how this all adds up for your web page view.

We concluded that the average page request occupied about 315,000 bytes of data.  That’s 2.52 x 10^6 bits.  The total energy required for the transaction was 4.6 x 10^-6 Joules per bit.  Multiplying these two numbers result in 11.52 Joules.  We add in the server energy of 0.02 Joules for a total of 11.61 watt-seconds (Joules) for each page view.  Again, this is not streaming video (I’ll look at that in a future blog post), but a static web page access from a server.  If you now multiply that single access by 1 million every second (a medium city’s population browsing the web), you get an energy consumption number of around 11,600 kilowatts an hour to keep the data moving...  enough energy to power roughly 13 US households for a month!  For you viewing 100 pages in a day, that would be about 323 milliwatt-hours of energy - or the equivalent of watching TV for about 10 minutes- and interesting thought.

As expected, it seems that the contribution of any individual is extremely small, but the sum of the population makes a much larger impact.  Maybe you’ve got a better estimate or have looked at this before more closely... let me know what you think!  Till next time...

Anonymous