netio - a tool to measure network speed across operating systems

Written by - 0 comments

Published on September 26th 2013 - Listed in Windows Linux BSD Backup Network

On a newly installed server running FreeBSD 9.2, I verified if the local backup was running correctly. I got aware that the backup was still running - after 24 hours.

That there's an issue was clear. But where could it be? Could it be a problem of the backup script on the new FreeBSD 9.2? Is it a network issue? Is the target server running on Windows causing the problem?

A friend of mine suggested to test the network speed between the FreeBSD and the Windows machine with netio - a tool written by Kai Uwe Rommel.

I quickly read the documentation and this tool is just plain simple cool. It allows to test the network speed between different hosts, but more importantly between different operating systems. We used netio version 1.32 which contained binaries for the following OS:

  • aix-ppc64
  • freebsd-i386
  • linux-i386
  • linux-x86_64
  • mac-osx-10.5
  • os2-i386
  • sol10-i386
  • sol9-sparc
  • win32-i386

So in our case we needed to test the speed between the client (FreeBSD 9.2, 64bit) and the server (Windows).

On the server, the Windows binary was launched in "server" mode:

C:\netio\win32-i386.exe -t -s

On the client side, the FreeBSD binary (yes, the i386 binary runs on the 64bit FreeBSD, but the 32bit compat libraries were installed) was launched with the IP of the destination server:

./freebsd-i386 -t

I checked the output of the client, which looked like that:

TCP connection established.
Packet size  1k bytes:  228.53 KByte/s Tx,  8387.64 KByte/s Rx.
Packet size  2k bytes:  125.29 KByte/s Tx,  7220.05 KByte/s Rx.
Packet size  4k bytes:  112.90 KByte/s Tx,  7898.72 KByte/s Rx.
Packet size  8k bytes:  122.81 KByte/s Tx,  6514.49 KByte/s Rx.
Packet size 16k bytes:  137.92 KByte/s Tx,  7823.70 KByte/s Rx.
Packet size 32k bytes:  97.14 KByte/s Tx,  8604.95 KByte/s Rx.

I was surprised by the very low sending speed (Tx) and was pretty sure that it must be something with the interface.
An ifconfig confirmed my suspicion:

media: Ethernet autoselect (100baseTX <half-duplex>)

Argh... the network switch's port was set to half-duplex.
After changing it to auto-negociate, the FreeBSD OS immediately updated the entry in ifconfig:

media: Ethernet autoselect (1000baseT <full-duplex>)

The new netio results were confirming that the wrong switch port config was responsible for the slow network speed and therefore a very slow backup process:

TCP connection established.
Packet size  1k bytes:  51.36 MByte/s Tx,  108.17 MByte/s Rx.
Packet size  2k bytes:  105.01 MByte/s Tx,  108.37 MByte/s Rx.
Packet size  4k bytes:  110.98 MByte/s Tx,  109.66 MByte/s Rx.
Packet size  8k bytes:  111.17 MByte/s Tx,  110.37 MByte/s Rx.
Packet size 16k bytes:  105.96 MByte/s Tx,  103.87 MByte/s Rx.
Packet size 32k bytes:  110.06 MByte/s Tx,  110.52 MByte/s Rx.

So netio is a great tool to measure the network speed between two hosts running different operating systems. And no installation is required.

Add a comment

Show form to leave a comment

Comments (newest first)

No comments yet.