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.
Table of Contents
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:
|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
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.
- 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.
- 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.