check fastest mirror
Jon South
striker at lunar-linux.org
Tue Aug 29 14:46:55 UTC 2006
Jannis wrote:
> I agree with Jean in that the idea in general is a good one. I think we
> don't need to argue about how much sense determining the fastest
> mirrors makes - it simply does make sense.
>
> While I like the idea of having the option to run such a script (e.g.
> from lunar's Options/Software Mirrors/Detect and use fastest mirrors),
> this should only be performed on demand - not automatically.
>
> The implementation Jean posted might not be perfect (actually, I don't
> know how all this could be done in a better way), it might do the job
> for now, until we find a better way. Just add it
> as e.g. "/usr/bin/lunar-use-fast-mirrors" and add the mentioned option
> to the "lunar" menu. It would be easy to replace the content of this
> script with something different later.
I will give you a few examples of why this script would not be useful:
1) Traceroute packets only tell you the number of hops and the speed at
which those hops decide to send back those useless packets. I say
useless because most routers QoS controls are configured to put any
packets that do not serve much purpose (icmp, ttl exceeded, etc) below
any important packets (ftp, http, established connections, etc). This
causes skew on the timings of how fast *real* packets will return.
2) The *actual protocol* that you're testing for is *not* actually being
tested. You're testing ping times of a few low priority packets.
3) This test does not take into account rate limiting done server-side.
Take for example the OSDN SourceForge mirror. Typically, when I'm
downloading from it, my rate is limited to about 20k/sec; however, OSDN
is very close to me and has excellent response times, but since your
little test didn't use the correct protocol to test with, I get the
wrong results.
4) This goes hand in hand with #1: Some service providers configure
their routers to completely ignore icmp or traceroute packets because
they simply dont care to route such useless packets. So if you have some
blazing 800k/sec mirror right next door to you that drops your
traceroute packets, "oops" I guess you'll never know now.
5) Just because it's closest, doesn't make it so. You've sent out a
packet, it's bounced around 8 or 10 times on the internet's busiest
routers that are already carrying 90% of their maximum load. Your packet
has just annoyed the hell out of a bunch of routers' QoS, so it bumps
your packet behind a large amount of more important packets, you've now
lost 100ms for each of those routers. Wow, this route really sucks...or
does it? Had you used a more important packet, you wouldn't have had to
wait that 100ms at each hop.
The moral of this story? If you're going to test something (e.g. video
games), dont test them with anything other (e.g. 80 year old men) than
what you plan on using afterwards (e.g. kids, teens, etc).
If you really want to test how well a mirror works, you need to actually
download something from it; not poke at it with a stick. Your best bet
is to download a fairly large file (depending on your bandwidth) at
least twice at two different times (peak/off-peak usage). This will
obviously take a considerable amount of time, and for the most-part wont
gain you much benefit. I wouldn't use a traceroute tool to guage my
HTTP/FTP download speeds any farther than I could throw the damned
thing, and neither should anyone else.
-Striker
More information about the Lunar-dev
mailing list