4

CentOS 5.x

At times, I've wanted to know what general bandwidth constraints exist between my servers and an external server that I don't have control over. Is there a linux command/tool that could provide this information?

Historically I've used tools like wget and scp to get a rough estimate from transfer speed summaries (in situations where the remote server is providing publicly accessible files). Is there anything else? I would assume not since there would likely be security repercussions in freely disclosing that information.

Mike B
  • 11,871
  • 42
  • 107
  • 168
  • 2
    If you can arrange for assistance on the remote side, you could use `iperf`. Could you? – Dima Chubarov Jun 07 '12 at 23:58
  • Just to be clear, you are not asking how to just send a lot of data and measure it. You are looking for some method to get the intermediate systems to report their link speed or something? – Zoredache Jun 08 '12 at 00:24
  • @Zoredache Exactly. Let's say that say I'm troubleshooting reports of slow network performance with one outside party. Ideally I'd like a way to quickly test ahead of time if there's a bottleneck and get a general idea of the bandwidth constraints (without having the external party run tests on their end). I understand this likely isn't possible but thought I'd ask anyway. =) – Mike B Jun 08 '12 at 05:38

2 Answers2

8

Check out iperf (http://iperf.sf.net). It has a client/server architecture.

The basic idea is that you have a server on one side of your network path, and one or multiple clients trying to connect to it. It has multiple options like TCP or UDP, single flow versus several flows, daemon mode, etc. I have been using it for testing bufferbloat, sustained bandwidth, MTU size, network loss and several other things.

It also has support for Jumbo Frames and IPv6.

This assumes that you have root access on both sides, of course. If that's not the case, could you give us more information about your setup?

You should be able to get packages for CentOS 5 from http://pkgs.org/centos-5-rhel-5/epel-x86_64/iperf-2.0.5-1.el5.x86_64.rpm.html for example, I think they come from Fedora.

Ender
  • 198
  • 4
0

Not directly a bandwidth monitor per se, but you could give

traceroute

a try. It will produce a list of where your packets go through to reach its destination, and you will not need any access to any of those hops in between. Ping values in the list it produces are often indicative of where the bottleneck, or problem, is.

[user@host ~]$ traceroute www.google.com
traceroute to www.google.com (173.194.78.99), 30 hops max, 60 byte packets
 1  209.85.254.92 (209.85.254.92)  74.644 ms 209.85.255.70 (209.85.255.70)  113.783 ms  113.753 ms
 2  209.85.240.221 (209.85.240.221)  118.487 ms  118.437 ms  118.395 ms
 3  72.14.236.191 (72.14.236.191)  115.771 ms 216.239.49.45 (216.239.49.45)  116.268 ms 209.85.251.231 (209.85.251.231)  161.010 ms
 4  * * 72.14.236.191 (72.14.236.191)  114.160 ms
 5  wg-in-f99.1e100.net (173.194.78.99)  160.352 ms  162.327 ms  163.890 ms

Same command exists on windows systems as:

tracert

I know that is not exactly what you asked, but, what you asked, ie, learning bandwidth values between each of those hops, cannot be done. Because of privacy issues, if nothing else.