Simulating dial-up users for both your server and your browser

In today's fast paced Internet you could be forgiven for neglecting the poor users of the humble modem, those that have the pleasure of listening to their very own soundtrack as they connect on to the Internet. There was a sense of ocassion about the whole process.

In performance tuning we usually go for the fast throughput, tweeking and twiddling our knobs to maximise the fastest connection and experience possible. But what about testing really slow connections? What happens when your server is saturated with "dial-up" users denying free slots for your other fast users?

I recently had a need to simulate this. I wanted to see what effect my servers would have if they were completely saturated with users that couldn't manage anymore than 1 KB/s (was looking at real worse case scenario).

A trawl around the Internet yielded very little results. The tools that I did find was not doing what they really said on the tin.

Sloppy popped up claiming to simulate what a site would look like to a user on a dial-up connection, allowing you to set the speed of their connection. The problem with this tool is that it polls the site as fast as it can, then drip feeds the browser through a proxy port, the data at the desired speed. This doesn't simulate the experience at all; leaving out a whole host of problems. For example the requesting of all the resources that make up a modern day "web2.0" page.

Just as I was about to reach for my IDE and knock up a quick tool to do the job for me, I fleeted a silly question across my mind; Wouldn't it be nice if I could limit the transfer of wget

And there indeed lay the answer to my problem; wget, with the flag "--limit-rate".

This utility should really at the finger tips of every web developer. I use it all the time, and yet it continually amazes me as to what it can do. One of the beautiful features is not only can you limit the rate of the site, but you can also get it to crawl a site to whatever depth you want. From the server's point of view, the request is really coming in that slowly, with no buffering or pre-fetching going on. Precisely what I was looking for.

Viva la wget


Recent Cloud posts

Recent JAVA posts

Latest CFML posts

Site Links