Monday, May 18, 2009

Cheap Network Measurement

You can't control what you can't measure. I want a fast local wireless network, counting only from my workstation to the router. If I change settings or drivers, how can I tell if it's an improvement or not? How can I gauge my network speed, including driver and network settings?

There are jillions of tools available*, but they mostly 1) require a specific client on the server, or 2) don't actually send traffic, they passively analyze what's there.

Here's a solution: transmit a largish file to the server, where it will ignore the data. Measure the network bandwidth locally using 'cpipe' or another tool.

Setup: enable SSH on the router, install "cpipe" locally.
cat /boot/vmlinuz-* | cpipe -vt | ssh router 'cat >/dev/null'

I get lines like this, with statistics on each of many chunks of data:
thru: 280.736ms at  455.9kB/s ( 288.7kB/s avg)  768.0kB
thru: 330.929ms at 386.8kB/s ( 299.6kB/s avg) 896.0kB
thru: 315.523ms at 405.7kB/s ( 309.7kB/s avg) 1024.0kB

This version buffers 10,000KB into a single chunk before sending it over the network, giving a slightly more accurate bandwidth number:
cat /boot/vmlinuz-* | cpipe -b 10000 -vt | ssh router 'cat >/dev/null'
thru: 13908.225ms at 411.6kB/s ( 411.6kB/s avg) 5.6MB


No comments:

Post a Comment