Web site performance limits using cable modem and DSL connections

For web sites served through cable modem or DSL connections, upload speeds limit a web site to a few pages/second. This may be enough for a small web site. An inexpensive PC or Mac will work fine as a web server. This article calculates page load times and pages per second for a typical cable modem connection and looks at the implications.

How to measure your connection speed

Cable and DSL providers offer home and small business Internet packages that advertise up to 6 Megabits/second for downloads, and 512 Kilobits/second for uploads. If your web site uses this type of package, it’s the upload speed that matters. That speed determines how quickly you can send web pages to your site’s visitors, and the maximum number of pages you can serve per second. 

Cable and DSL providers quote speeds as up to some number. Actual speeds vary with the time of day, the distance between your building and the provider’s centralized gear, and the quality of that gear. To find out what speed you are really getting, you need to measure it.

A web search finds lots of web sites that will test your connection speed for free. I tried several to test a home cable modem connection:

Web sites that measure connection speed
Site Download Upload
Bandwidthplace.com bandwidth speed test 310 Kbytes/sec  
CNet.com bandwidth meter 142 Kbytes/sec  
MacAfee.com internet connection speedometer 213 Kbytes/sec  
Numion.com YourSpeed 561 Kbytes/sec 45 Kbytes/sec
TestMy.net dual speed test 594 Kbytes/sec 43 Kbytes/sec
Toast.net internet speed test 499 Kbytes/sec 54 Kbytes/sec
Speakeasy.net speed test 530 Kbytes/sec 45 Kbytes/sec
Speedtest.net broadband speed test 511 Kbytes/sec 46 Kbytes/sec

All of these should report nearly the same results every time for the same connection, but they don’t. Some sites give very different numbers each time the test is run, and some don’t report upload speeds. These quirks could be problems with their own network connections, and/or bad programming. In any case, if the numbers change a lot every time you run the test, try a different measuring web site.

Speedtest.net had the best user interface (by far) and it delivered consistent reasonable results.

Calculate the page load time

Divide the size of a web page by the upload speed to get the page load time:

Page load time = page size / upload speed

For a very simple 15 Kbyte page (HTML, CSS, JavaScript, and images) and a 46 Kbyte/sec upload speed, the page load time is 15 / 46 = 0.326 sec, or about 1/3rd of a second. Usability studies have found that page load times need to be under a second for visitors to feel that a site is responsive, and under four seconds or visitors will likely leave.  So, 1/3rd of a second is usable.

To verify page load times, I set up a test web site and measured actual page load times for a 15 Kbyte page.

Tested from... Page load time
The server itself 0.002 sec
A nearby computer on the LAN 0.005 sec
A computer on the Internet 0.334 sec

The first two tests are best-case scenarios where pages are served to the same computer, and to a nearby computer without going over the Internet. Page load times were a tiny fraction of a second.

In the third test, pages were served over a cable modem and load times jumped 60 fold to 1/3rd of a second. This measured load time closely matches the expected time calculated earlier for a cable modem connection.

Some implications:

  • A cable modem is much slower than a network between computers in the same building. Pages that load super fast during development will use your fast local network, but your visitors will use a much slower cable modem or DSL connection to your server. Test your site the way they’ll see it and optimize for their experience, not yours.
  • A cable modem connection is sufficient for a responsive small web site. A 1/3rd second page load time is usable. However, care must be taken to keep web pages short and images small.  If the total page size gets beyond 50 Kbytes, the load time will exceed 1 second and the site will begin to feel sluggish.
  • Apache is fast enough.  In these tests, Apache took a tiny fraction of a second to prepare a page. Using a faster web server would not noticeably improve performance — it is the network upload speed that is the bottleneck.
  • A faster computer isn’t necessary.  A faster CPU will speed up Apache a bit, but the network is the bottleneck, not the server CPU. Spend the money on a faster network connection, not on a faster computer.

Calculate the pages per second

Divide one by the page load time to get the number of pages per second:

Pages per second = 1 / page load time

For a load time of 1/3rd of a second, the server can deliver 3 pages per second.  This is the fastest the site can serve pages to visitors.  If you are making money selling ads on your site, then this is the highest ad view rate possible.  If sustained, 3 pages per second is still over 10,000 pages per hour, which is a lot.

While running the benchmarks above, I watched the server’s CPU load.  It hovered around 15%, which is hardly busy at all.  I tested this using an old Mac G4 that went out of production in 2001.  For interactive use the Mac feels sluggish, but as a web server it is more than enough.

Some implications:

  • A cable modem connection is sufficient for a small web site.  A few pages per second is enough for many small web sites, such as those for families, personal blogs, or many small businesses.  However, keep pages as small as possible.  Larger pages take longer to send and will reduce the page rate.  While a page is being sent to one visitor, others are waiting.  If they have to wait more than a second or two, your site will feel sluggish.
  • A slow computer is good enough for a small web site.   Web serving a few pages per second puts very little demand on a computer.  An older PC or Mac is fine.  Consider using the same computer for other duties as well, such as serving printers, disks, and iTunes music.

Conclusions

Serving a small web site doesn’t require an elaborate setup.  An inexpensive cable modem or DSL connection is responsive enough, and even a slow PC or Mac will do fine.

Comments

Great Information I ever found on page load time

I have found the inforamtion overall great, but I could not found anything that can define how to reduce website loadtime. I already knew many factors that can reduce the web page loadtime. But I need to know whether is there any possibility to check load time on different connection at once. Like I'm this time at LAN networks, I'm using 1GB speed, the site I tend to open is opening quickly, but what if this site is on 56kbps speed connection. Please tell us how to check different connection speeds in real time.

Thanks,

Bilal

Re: testing at different connection speeds

What you need is a "web debugging proxy". This is an application that sits between your web browser and your Internet connection. All traffic to or from your browser passes through it. The proxy can record that traffic and show you reports on the download speed, the order of file accesses, and so on. And for testing your site as if seen at different speeds, the proxy can throttle the internet connection down to whatever bandwidth and latency you like.

I do my work on a Mac and use the excellent Charles proxy. It comes with a Firefox plugin that routes traffic to/from Charles. I use this to test my sites at different connection speeds, do performance timing, and to monitor what files are loaded and in what order.

I'm sure some Googling will find equivalent tools on Windows and Linux if you prefer.

Post new comment

The content of this field is kept private and will not be shown publicly.
  • Allowed HTML tags: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Lines and paragraphs break automatically.
  • Web page addresses and e-mail addresses turn into links automatically.

More information about formatting options

Nadeau software consulting
Nadeau software consulting