Hello Ray,
I was able to test out the "speedtest-cli" app on my lab 128T router and it seems to work very well for what you are looking to do. First off, this app seems to consume at most 60% of a CPU core when pushing ~300Mb on the download and much less when testing the upload (~3%). My assumption is that this is all based on throughput which seems to drive CPU utilization for this app. This application does consume bandwidth so it is not advisable to run during a time when this could impact other users on the router. My lab 128T router is a Lanner 1210 (4 core Atom 2558). Also to note, I saw very similar results running this on my Windows 10 laptop connected through a switch to this 128T router vs directly on the router itself.
My lab 128T here utilizes management over forwarding, so all I had to do was install "speedtest-cli" and run it. For completeness, here are the full steps required to set this up as well:
1) With 128T stopped, add the default route file to use kni254
[t128@grimlock ~]$ cat /etc/sysconfig/network-scripts/route-kni254
0.0.0.0/0 via 169.254.127.126
2) Setup global-dns to be used
[t128@grimlock ~]$ cat /etc/NetworkManager/conf.d/global-dns.conf
[global-dns]
enable=yes
[global-dns-domain-*]
servers=8.8.8.8,1.1.1.1
3) Setup the WAN interface to access "Conductor"
network-interface DHCP-comcast-WAN
name DHCP-comcast-WAN
conductor true
4) Add built-in internal tenant "_internal_" to "internet" service
service internet
name internet
description "Public Internet service"
scope private
security encrypt-hmac-disabled
address 0.0.0.0/0
access-policy _internal_
source _internal_
exit
service-policy broadband-preferred-transport-state-allow
5) Ensure service-route exists for "internet" service (in my case I have a DHCP broadband link as primary and DHCP LTE link as backup)
service-route internet-route
name internet-route
service-name internet
next-hop grimlock DHCP-comcast-WAN
node-name grimlock
interface DHCP-comcast-WAN
exit
next-hop grimlock lte-digi
node-name grimlock
interface lte-digi
exit
exit
service-policy broadband-preferred-transport-state-allow
name broadband-preferred-transport-state-allow
lb-strategy hunt
vector broadband
name broadband
priority ordered
exit
vector lte
name lte
priority ordered
exit
required-qp 0
qp-preference highest
session-resiliency none
path-quality-filter false
best-effort true
transport-state-enforcement allow
exit
6) Install and run "speedtest-cli"
[t128@grimlock ~]$ sudo pip install speedtest-cli
[t128@grimlock ~]$ speedtest-cli
Retrieving speedtest.net configuration...
Testing from Comcast Cable (71.231.26.230)...
Retrieving speedtest.net server list...
Selecting best server based on ping...
Hosted by CenturyLink, Inc (Seattle, WA) [23.50 km]: 28.485 ms
Testing download speed................................................................................
Download: 272.61 Mbit/s
Testing upload speed................................................................................................
Upload: 12.06 Mbit/s
[t128@grimlock ~]$ speedtest-cli
Retrieving speedtest.net configuration...
Testing from Comcast Cable (71.231.26.230)...
Retrieving speedtest.net server list...
Selecting best server based on ping...
Hosted by CenturyLink, Inc (Seattle, WA) [23.50 km]: 24.267 ms
Testing download speed................................................................................
Download: 284.53 Mbit/s
Testing upload speed................................................................................................
Upload: 11.86 Mbit/s
[t128@grimlock ~]$ speedtest-cli
Retrieving speedtest.net configuration...
Testing from Comcast Cable (71.231.26.230)...
Retrieving speedtest.net server list...
Selecting best server based on ping...
Hosted by CenturyLink, Inc (Seattle, WA) [23.50 km]: 25.269 ms
Testing download speed................................................................................
Download: 269.87 Mbit/s
Testing upload speed................................................................................................
Upload: 12.01 Mbit/s
[t128@grimlock ~]$ speedtest-cli
Retrieving speedtest.net configuration...
Testing from Comcast Cable (71.231.26.230)...
Retrieving speedtest.net server list...
Selecting best server based on ping...
Hosted by CenturyLink, Inc (Seattle, WA) [23.50 km]: 25.755 ms
Testing download speed................................................................................
Download: 269.57 Mbit/s
Testing upload speed................................................................................................
Upload: 11.36 Mbit/s
In addtion, here are the results from "top" for just this process during a single run of "speedtest-cli". I noticed similar results in the other test runs as well.
top - 23:05:09 up 16 days, 13:31, 4 users, load average: 1.65, 1.51, 1.37
Tasks: 185 total, 2 running, 183 sleeping, 0 stopped, 0 zombie
%Cpu(s): 34.1 us, 3.1 sy, 0.0 ni, 62.3 id, 0.0 wa, 0.0 hi, 0.4 si, 0.0 st
KiB Mem : 8162056 total, 384268 free, 3800796 used, 3976992 buff/cache
KiB Swap: 0 total, 0 free, 0 used. 4000868 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
19986 t128 20 0 238168 30488 5140 R 19.9 0.4 0:00.60 speedtest-cli
top - 23:05:12 up 16 days, 13:31, 4 users, load average: 1.65, 1.51, 1.37
Tasks: 185 total, 2 running, 183 sleeping, 0 stopped, 0 zombie
%Cpu(s): 38.1 us, 3.6 sy, 0.0 ni, 57.9 id, 0.0 wa, 0.0 hi, 0.4 si, 0.0 st
KiB Mem : 8162056 total, 381892 free, 3802292 used, 3977872 buff/cache
KiB Swap: 0 total, 0 free, 0 used. 3999392 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
19986 t128 20 0 1122568 30200 5180 S 28.9 0.4 0:01.47 speedtest-cli
top - 23:05:15 up 16 days, 13:31, 4 users, load average: 1.60, 1.50, 1.37
Tasks: 185 total, 1 running, 184 sleeping, 0 stopped, 0 zombie
%Cpu(s): 39.3 us, 4.8 sy, 0.0 ni, 54.9 id, 0.0 wa, 0.0 hi, 1.0 si, 0.0 st
KiB Mem : 8162056 total, 381556 free, 3801664 used, 3978836 buff/cache
KiB Swap: 0 total, 0 free, 0 used. 3999812 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
19986 t128 20 0 1122568 30380 5180 S 45.7 0.4 0:02.85 speedtest-cli
top - 23:05:18 up 16 days, 13:31, 4 users, load average: 1.60, 1.50, 1.37
Tasks: 185 total, 1 running, 184 sleeping, 0 stopped, 0 zombie
%Cpu(s): 37.5 us, 3.6 sy, 0.0 ni, 58.0 id, 0.0 wa, 0.0 hi, 0.9 si, 0.0 st
KiB Mem : 8162056 total, 380080 free, 3802340 used, 3979636 buff/cache
KiB Swap: 0 total, 0 free, 0 used. 3999272 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
19986 t128 20 0 1122568 30472 5180 S 48.5 0.4 0:04.32 speedtest-cli
top - 23:05:21 up 16 days, 13:31, 4 users, load average: 1.63, 1.51, 1.37
Tasks: 185 total, 2 running, 183 sleeping, 0 stopped, 0 zombie
%Cpu(s): 41.1 us, 5.5 sy, 0.0 ni, 51.4 id, 0.0 wa, 0.0 hi, 1.9 si, 0.0 st
KiB Mem : 8162056 total, 306500 free, 3875484 used, 3980072 buff/cache
KiB Swap: 0 total, 0 free, 0 used. 3926208 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
19986 t128 20 0 1195244 164436 5184 R 57.1 2.0 0:06.05 speedtest-cli
top - 23:05:24 up 16 days, 13:31, 4 users, load average: 1.74, 1.54, 1.38
Tasks: 185 total, 2 running, 183 sleeping, 0 stopped, 0 zombie
%Cpu(s): 32.7 us, 10.5 sy, 0.0 ni, 56.1 id, 0.0 wa, 0.0 hi, 0.6 si, 0.0 st
KiB Mem : 8162056 total, 254788 free, 3926000 used, 3981268 buff/cache
KiB Swap: 0 total, 0 free, 0 used. 3875332 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
19986 t128 20 0 1303820 213076 5184 S 12.9 2.6 0:06.44 speedtest-cli
top - 23:05:27 up 16 days, 13:31, 4 users, load average: 1.74, 1.54, 1.38
Tasks: 185 total, 1 running, 184 sleeping, 0 stopped, 0 zombie
%Cpu(s): 31.6 us, 2.3 sy, 0.0 ni, 65.6 id, 0.1 wa, 0.0 hi, 0.4 si, 0.0 st
KiB Mem : 8162056 total, 254388 free, 3925736 used, 3981932 buff/cache
KiB Swap: 0 total, 0 free, 0 used. 3875688 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
29986 t128 20 0 1303820 213116 5184 S 3.0 2.6 0:06.53 speedtest-cli
2
top - 23:05:30 up 16 days, 13:31, 4 users, load average: 1.68, 1.53, 1.38
Tasks: 185 total, 1 running, 184 sleeping, 0 stopped, 0 zombie
%Cpu(s): 32.1 us, 3.2 sy, 0.0 ni, 64.4 id, 0.0 wa, 0.0 hi, 0.4 si, 0.0 st
KiB Mem : 8162056 total, 263504 free, 3925504 used, 3973048 buff/cache
KiB Swap: 0 total, 0 free, 0 used. 3875728 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
19986 t128 20 0 1303820 213116 5184 S 3.0 2.6 0:06.62 speedtest-cli
And finally, the pretty graph showing the throughput from the 128T UI
Any questions, let me know.
------------------------------
Adam Morris
Sales Engineer
WA
(206) 617-4999
------------------------------
Original Message:
Sent: 03-20-2019 15:18
From: Steve Voto
Subject: Linux based add-ons. Bad or Good?
Ray,
Adam will be testing the feature he spoke about. Thank you for your responses. More to come ....
Steve
------------------------------
Steve Voto
Software Engineer
Burlington MA
Original Message:
Sent: 03-20-2019 14:13
From: Ray Mikesell
Subject: Linux based add-ons. Bad or Good?
Steve,
I'm not quite to the level of understanding the "under the hood" methods of how each software package would interface with the base OS and the 128 Service, specifically in this case the data plane development kit. I was assuming that 128 grabs the interface from the data plane and postulating the use of KNI tunnel much like how DHCP has been done to allow for use of a package from "Linux land" within "128 Land." The question of resource usage was the more concerning, to me, based on my current understanding of the operation. I hadn't considered the impact of how the software would interface with the hardware. Thanks for pointing that out.
The reason I was looking for something direct on the 128 device was that often the devices that i use (windows and mac systems) have so much overhead in resources that even they don't provide a reliable result when directly connected to an interface. That said, part of what I am thinking of, to provide full possibility for the connection test, would likely require taking the Interface off of production to use in the test. In this manner it would be more useful as a setup and diagnosis tool, especially for gathering information for traffic management.
I look forward to seeing what Adam will be able to see and what does and doesn't work on a physical test. I think its going to balance out to what hardware is used for the 128 software to run on, how much resource use is needed for the testing software, and your noted impact of the access to the DPDK interface. Perhaps we will start to see recommended tool apps based on hardware levels?
------------------------------
Ray Mikesell
Minneapolis MN
(763) 452-4823
Original Message:
Sent: 03-20-2019 13:32
From: Steve Voto
Subject: Linux based add-ons. Bad or Good?
Ray,
In you request having a test tool on the router directly on the Linux OS would need to be connected to the DPDK interface to test in this manner. This would not give true test results than a direct connection at the Dataplane level. This would also perform slower utilizing resources on the router which would impacted to perform testing. We like to have endpoints directly connected to an interface at the Dataplane to get realistic results. I hope this helps!
Original Message------
Thanks for the pointer . Has this been installed on a device running 128 to your knowledge?
iPerf would also not be a stand alone solution, it would require you to have a "server" somewhere to test against. To my understanding the method iPerf uses is a preferred method for speed testing as it uses actual data transfers to known locations for testing, and provides a more reliable result, especially when your interest is in site to site mobility. Sounds like a great way to look at possible speeds between 128 routers.
------------------------------
Ray Mikesell
Minneapolis MN
(763) 452-4823
Original Message:
Sent: 03-20-2019 10:29
From: Steve Voto
Subject: Linux based add-ons. Bad or Good?
Ray,
The simplest tool to use would be IPERF. Is it easy to configure and is A network traffic tool for measuring TCP and UDP performance. There are many other opensource tools out there. Hope this helps!!
v/r
Original Message------
I am looking for a good method to be able to perform a speed test from the 128 devices on the WAN interfaces. At present we have been provided with a "being used" model so we can see how existing traffic is flowing. We have the contracted speeds provided to us from our vendors and we can perform speed tests from computer(s) attached to the 128 devices. 128 provides us with many things, but one thing that I find would be helpful is a speed test of the circuit. After investigating I found a tool called speedtest-cli that operates on Linux, but being cautious I wanted to bring this to the forum for everyone to chime in about. Has anyone used the tool or a tool like it outside of 128 before, and secondly, have you attempted to use it or any other add-on linux based tool while installed on the 128 platform. For our friends at 128, has a tool like this been examined to add to the toolset of 128?
Thanks
------------------------------
Ray Mikesell
Minneapolis MN
------------------------------