Help Interpreting traceroute output
trlists at clayst.com
trlists at clayst.com
Mon Oct 18 14:28:00 EDT 2004
On 18 Oct 2004 dsr at tao.merseine.nu wrote:
> Remember that traceroute is not a performance measurement tool.
> It's a connectivity checker.
Fair enough. But it is sometimes a simple way to get a rough idea of
where a performance problem lies, no?
> - ICMP is not handled the same way as UDP which is not the same
> as TCP
>
> - your packet size will be different
>
> - your routing is not guaranteed
OK. But we are looking for a serious bottleneck here that is breaking
an application. I'm guessing that the differences in performance
within a normal range of packet sizes will not be so great that the
traceroute output is for that reason alone useless in finding an
obvious bottleneck. And the routing is usually the same from try to
try.
I hadn't thought about the differences in packet types -- and I'm not a
router expert so please bear with me. Are the routing algorithms
typically different for the different packet types, such that a notable
bottleneck found via traceroute for UDP would routinely not apply to
ICMP or TCP packets?
> routers may handle traceroutes and/or pings preferentially, may
> artificially restrict them, may route them differently, store
> them in different buffers, all sorts of things.
Again, fair enough, but will this affect the gross results or just less
important details?
> Performance testing is best done between the points in question
> with the protocol in question using a payload as similar to
> "typical" as possible.
In this case we are trying to get a rough feel for why an installer
can't retrieve data from a mirror at any reasonable rate. The data is
sent via HTTP POST and hence is coming as TCP packets. I don't know
the packet size (I didn't write the installer, I'm just looking for
what's slowing it down) but I can probably find out. Beyond that, what
is a good method for doing this kind of basic performance testing
without overdoing the level of precision?
For example, I can write some quick PHP code that opens a connection to
port 80 on the relevant host and downloads whatever web page is sitting
there enough times to be able to measure the throughput -- though in
doing that we are measuring startup time for each connection as well.
I can do all kinds of other things similar to that, but I probably
can't get something to run at the other end that is going to provide
low-level responses on a port of my choosing, adjust packet size, etc.
It would be overkill for the problem I'm trying to solve, my client
would balk at the time involved, and the admins at the other end aren't
going to let that happen on their server anyway.
More to the point, we are pretty sure we already know what end-to-end
testing will tell us -- the link is slow. The question is why and
where. Is there something other than tranceroute that can be helpful
in answering questions like that?
Any suggestions welcome ... thanks.
--
Tom
More information about the Discuss
mailing list