Matrix like

HowTo: Measuring local network throughput using Qnap NAS.

(I’m not pretending to be a Linux Guru I’m just a simple Windows System and Network administrator which every now and then uses Linux)

The following might be helpful for people who like to measure their local network throughput.
You can use iPerf, but the lack of decent (affordable) iOS apps made me decide to search for a better alternative.

Three months ago I found the AppNeta PathTest App in the Apple Store, installed it (client) on my iPad Mini and ran the PathTest server executable from the command line on my Windows 2008 server (running on VMware).
Because of the network sharing of my physical network adapters with other virtual servers on my home network VMware server I’ve decided to try and run PathTest (server) on my QNAP TS-659 Pro II which has two trunked 1Gb ports and plenty of bandwidth available.

PathTest is preferable over iPerf because of the more options it has to offer, you can configure from protocol (TCP, UDP, ICMP) to port number and even QoS settings.
Both the command line software and the App are free.

It’s pretty simple to run PathTest on your QNAP. Below I’ve noted what you will need and have to do to make it work.

First, download the files you’ll need. In my case Linux_32-bit.zip (for the QNAP, server), Windows_32-bit.zip (for my Windows machine, client) and the App (for the iPad Mini, client):

Before installing, first check your QNAP if it has the Optware IPKG installed, if not make sure to install it first.

After that, make an SSH connection to your QNAP -for example with Putty– and upload the PathTest file to the “/tmp” directory and extract it.
After extracting the “Linux_32-bit.zip” you’ll find a directory called “/tmp/Linux_32-bit” which contains the “pathtest” program.

If you run the program for the first time you will probaly get the following Error:

[/tmp] # ./pathtest -s
./pathtest: error while loading shared libraries: libcrypto.so.4: cannot open shared object file: No such file or directory

The above Error is because PathTest can’t find libcrypto.so.4 in its path, which can be easily solved by making symbolic links to the missing files.

[/] # cd /usr/lib
[/usr/lib] # ln -s libcrypto.so.1.0.0 libssl.so.4
[/usr/lib] # ln -s libcrypto.so.1.0.0 libcrypto.so.4
[/usr/lib] # cd /tmp
[/tmp] # ./pathtest -s
PathTest (TM) v.4.6.0 build 4639
Copyright (c) 2011, AppNeta Inc. All Rights Reserved.

Running in server mode on port 3236 ...

Now your QNAP is running PathTest in server-mode. If you like, you can add the “-d” option to run PathTest in Deamon mode.

To test the network throughput of a Windows or Linux machine with PathTest, just run the PathTest (command line) with the “-c” option (pointing to your QNAPs IP-address).

For your iOS device you can install the AppNeta PathTest App (client, graphical) and point your test to the QNAP with the running PathTest server.
The App works like a charm with a nice interface, albeit with one annoying bug when sending a mail with the test results from inside the App.
The recieved mail misses the test results.

The generated data is shown on the client and server side, which can be seen in the screen dumps below.

I had to move the PathTest binary to the “/Opt” directory to not lose it after a reboot of the QNAP.

Still had two issues to solve running PathTest:

  • Symbolic links are deleted after the Qnap reboot.
  • QNAP doesn’t automatically start PathTest when booted.

While searching for a solution for the earlier mentioned problems I’ve found a post of Patrick M. Wilson on the Qnap forum were he gives a forum member with a similar problem the advice to use the “/share/homes/admin/bin” directory.

So I created the “bin” directory and copied the “PathTest” binary to it.

# mkdir /share/homes/admin/bin

To automate the start of “PathTest” I opened “vi” to edit the “autorun.sh” file:

# mount -t ext2 /dev/sdx6 /tmp/config
# vi /tmp/config/autorun.sh

I added the “/share/homes/admin/bin/pathtest -s -d” string and tje symbolic links to the “autorun.sh” file:

cd /usr/lib
ln -s libcrypto.so.1.0.0 libssl.so.4
ln -s libcrypto.so.1.0.0 libcrypto.so.4
cd /
cd /opt
./pathtest -s -d

After doing this I saved and unmounted the “autorun.sh” file:

# chmod +x /tmp/config/autorun.sh
# umount /tmp/config

Restarted the Qnap, and it worked flawlessly.

[/] # ps cax | grep pathtest
8257 admin 1520 S /share/homes/admin/bin/pathtest -s -d
25426 admin 544 R grep pathtest
[/] #

The Linux Top-command below showed activity when I started the PathTest client on my Windows machine, which took 2 x 5 seconds.

Mem: 1045288K used, 2031192K free, 0K shrd, 72388K buff, 451824K cached
Load average: 0.25, 0.12, 0.13    (State: S=sleeping R=running, W=waiting)

  PID USER         STATUS   RSS  PPID %CPU %MEM COMMAND
 8257 admin        S       1520     1 22.0  0.0 pathtest

Please feel free to leave a comment below.

2 thoughts on “HowTo: Measuring local network throughput using Qnap NAS.”

  1. Hi, thanks for the how-to. I just tried to get pathtest (lnux 32 bit) running on my QNAP TS212 and it failed with the error message “cannot execute binary file”. I assume that’s due to the fact that the QNAP is ARM based, uname -m armv5tel. I’m not a linux expert, what do I need to do…

    1. Hello Christian,

      I’m not a Linux expert too. My QNAP659 runs on “Linux Qnap659 3.4.6 #1 SMP Fri Mar 11 05:59:32 CST 2016 x86_64 unknown” (uname -a).
      In my opinion your right about PathTest doesn’t run on a ARM based system.

      Maybe it’s a good idea to visit the PathTest thread at the QNAP forum.

      Regards,
      René

Leave a Reply

Your email address will not be published. Required fields are marked *