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:
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 10.10.11.12
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.