Closed jonassmedegaard closed 3 years ago
Jonas Smedegaard notifications@github.com writes:
I want to test my internet connection, and wanted to test against a virtual machine at Scaleway - which uses 1:1 NAT (seen from the host itself is a private 10.x.x.x/23 IPv4 address mapped to a public IPv4 address) which apparently require setting an undocumented option -R in netperf.
Please have flent support that custom "re-enable routing which we silently disabled for UDP) netperf option - or support passing custom options if you dislike hardcoding something undocumented.
According to the post you linked this is only for UDP_STREAM tests, which we don't have any of in Flent; so why exactly is this needed?
Sorry, I was too quick to conclude the exact cause of error messages I saw in the GUI.
When I saw those errors I cancelled the test, expecting no results at all - but trying more patiently to let it run its course I now see that output is generate (so something works) and those error messages are nicely emitted on console too (not only in GUI window), along with more details:
$ flent-gui
Started Flent 1.3.2 using Python 3.9.1rc1.
Initialised matplotlib v3.3.2 on numpy v1.19.4.
GUI loaded. Running on PyQt v5.15.2.
Starting rrul test. Expected run time: 70 seconds.
WARNING: Program exited non-zero.
Runner class: NetperfDemoRunner
Command: /usr/bin/netperf -P 0 -v 0 -D -0.20 -4 -Y EF,EF -H XXXXX -p 12865 -t UDP_RR -l 70 -F /dev/urandom -- -e 2 -H XXXXX -k THROUGHPUT,LOCAL_CONG_CONTROL,REMOTE_CONG_CONTROL,TRANSPORT_MSS,LOCAL_TRANSPORT_RETRANS,REMOTE_TRANSPORT_RETRANS,LOCAL_SOCKET_TOS,REMOTE_SOCKET_TOS,DIRECTION,ELAPSED_TIME,PROTOCOL,LOCAL_SEND_SIZE,LOCAL_RECV_SIZE,REMOTE_SEND_SIZE,REMOTE_RECV_SIZE,LOCAL_BYTES_SENT,LOCAL_BYTES_RECVD,REMOTE_BYTES_SENT,REMOTE_BYTES_RECVD
Return code: 1
Stdout: send_data: data send error: Invalid argument (errno 22)
Stderr: netperf: send_omni: send_data failed: Invalid argument
WARNING: Command produced no valid data.
Runner class: NetperfDemoRunner
Command: /usr/bin/netperf -P 0 -v 0 -D -0.20 -4 -Y EF,EF -H XXXXX -p 12865 -t UDP_RR -l 70 -F /dev/urandom -- -e 2 -H XXXXX -k THROUGHPUT,LOCAL_CONG_CONTROL,REMOTE_CONG_CONTROL,TRANSPORT_MSS,LOCAL_TRANSPORT_RETRANS,REMOTE_TRANSPORT_RETRANS,LOCAL_SOCKET_TOS,REMOTE_SOCKET_TOS,DIRECTION,ELAPSED_TIME,PROTOCOL,LOCAL_SEND_SIZE,LOCAL_RECV_SIZE,REMOTE_SEND_SIZE,REMOTE_RECV_SIZE,LOCAL_BYTES_SENT,LOCAL_BYTES_RECVD,REMOTE_BYTES_SENT,REMOTE_BYTES_RECVD
Return code: 1
Stdout: send_data: data send error: Invalid argument (errno 22)
Stderr: netperf: send_omni: send_data failed: Invalid argument
WARNING: Program exited non-zero.
Runner class: NetperfDemoRunner
Command: /usr/bin/netperf -P 0 -v 0 -D -0.20 -4 -Y CS1,CS1 -H XXXXX -p 12865 -t UDP_RR -l 70 -F /dev/urandom -- -e 2 -H XXXXX -k THROUGHPUT,LOCAL_CONG_CONTROL,REMOTE_CONG_CONTROL,TRANSPORT_MSS,LOCAL_TRANSPORT_RETRANS,REMOTE_TRANSPORT_RETRANS,LOCAL_SOCKET_TOS,REMOTE_SOCKET_TOS,DIRECTION,ELAPSED_TIME,PROTOCOL,LOCAL_SEND_SIZE,LOCAL_RECV_SIZE,REMOTE_SEND_SIZE,REMOTE_RECV_SIZE,LOCAL_BYTES_SENT,LOCAL_BYTES_RECVD,REMOTE_BYTES_SENT,REMOTE_BYTES_RECVD
Return code: 1
Stdout: send_data: data send error: Invalid argument (errno 22)
Stderr: netperf: send_omni: send_data failed: Invalid argument
WARNING: Command produced no valid data.
Runner class: NetperfDemoRunner
Command: /usr/bin/netperf -P 0 -v 0 -D -0.20 -4 -Y CS1,CS1 -H XXXXX -p 12865 -t UDP_RR -l 70 -F /dev/urandom -- -e 2 -H XXXXX -k THROUGHPUT,LOCAL_CONG_CONTROL,REMOTE_CONG_CONTROL,TRANSPORT_MSS,LOCAL_TRANSPORT_RETRANS,REMOTE_TRANSPORT_RETRANS,LOCAL_SOCKET_TOS,REMOTE_SOCKET_TOS,DIRECTION,ELAPSED_TIME,PROTOCOL,LOCAL_SEND_SIZE,LOCAL_RECV_SIZE,REMOTE_SEND_SIZE,REMOTE_RECV_SIZE,LOCAL_BYTES_SENT,LOCAL_BYTES_RECVD,REMOTE_BYTES_SENT,REMOTE_BYTES_RECVD
Return code: 1
Stdout: send_data: data send error: Invalid argument (errno 22)
Stderr: netperf: send_omni: send_data failed: Invalid argument
WARNING: Program exited non-zero.
Runner class: NetperfDemoRunner
Command: /usr/bin/netperf -P 0 -v 0 -D -0.20 -4 -H XXXXX -p 12865 -t UDP_RR -l 70 -F /dev/urandom -- -e 2 -H XXXXX -k THROUGHPUT,LOCAL_CONG_CONTROL,REMOTE_CONG_CONTROL,TRANSPORT_MSS,LOCAL_TRANSPORT_RETRANS,REMOTE_TRANSPORT_RETRANS,LOCAL_SOCKET_TOS,REMOTE_SOCKET_TOS,DIRECTION,ELAPSED_TIME,PROTOCOL,LOCAL_SEND_SIZE,LOCAL_RECV_SIZE,REMOTE_SEND_SIZE,REMOTE_RECV_SIZE,LOCAL_BYTES_SENT,LOCAL_BYTES_RECVD,REMOTE_BYTES_SENT,REMOTE_BYTES_RECVD
Return code: 1
Stdout: send_data: data send error: Invalid argument (errno 22)
Stderr: netperf: send_omni: send_data failed: Invalid argument
WARNING: Command produced no valid data.
Runner class: NetperfDemoRunner
Command: /usr/bin/netperf -P 0 -v 0 -D -0.20 -4 -H XXXXX -p 12865 -t UDP_RR -l 70 -F /dev/urandom -- -e 2 -H XXXXX -k THROUGHPUT,LOCAL_CONG_CONTROL,REMOTE_CONG_CONTROL,TRANSPORT_MSS,LOCAL_TRANSPORT_RETRANS,REMOTE_TRANSPORT_RETRANS,LOCAL_SOCKET_TOS,REMOTE_SOCKET_TOS,DIRECTION,ELAPSED_TIME,PROTOCOL,LOCAL_SEND_SIZE,LOCAL_RECV_SIZE,REMOTE_SEND_SIZE,REMOTE_RECV_SIZE,LOCAL_BYTES_SENT,LOCAL_BYTES_RECVD,REMOTE_BYTES_SENT,REMOTE_BYTES_RECVD
Return code: 1
Stdout: send_data: data send error: Invalid argument (errno 22)
Stderr: netperf: send_omni: send_data failed: Invalid argument
Summary of rrul test run from 2020-12-04 20:04:49.807272
avg median # data pts
Ping (ms) ICMP : 40.35 41.60 ms 350
Ping (ms) UDP BE : No data.
Ping (ms) UDP BK : No data.
Ping (ms) UDP EF : No data.
Ping (ms) avg : 40.35 N/A ms 350
TCP download BE : 0.82 0.77 Mbits/s 350
TCP download BK : 0.80 0.75 Mbits/s 350
TCP download CS5 : 0.79 0.75 Mbits/s 350
TCP download EF : 0.67 0.63 Mbits/s 350
TCP download avg : 0.77 N/A Mbits/s 350
TCP download sum : 3.08 N/A Mbits/s 350
TCP totals : 94.35 N/A Mbits/s 350
TCP upload BE : 23.03 23.02 Mbits/s 350
TCP upload BK : 22.70 22.67 Mbits/s 350
TCP upload CS5 : 22.87 22.91 Mbits/s 350
TCP upload EF : 22.67 23.21 Mbits/s 350
TCP upload avg : 22.82 N/A Mbits/s 350
TCP upload sum : 91.27 N/A Mbits/s 350
Data file written to /home/jonas/flent/rrul-2020-12-04T210449.807272.flent.gz.
Output graph for an RRUL test is missing the 3 UDP ping series, but all other series seem to have gotten through. Perhaps this is no issue ~in~ possible to work around in flent after all, just my cloud provider blocking UDP ping...
Jonas Smedegaard notifications@github.com writes:
Output graph for an RRUL test is missing the 3 UDP ping series, but all other series seem to have gotten through. Perhaps this is no issue in flent after all, just my cloud provider blocking UDP ping...
Or it may be that the same UDP issue you linked also affects the UDP_RR test; I'll dig around in the netperf source code a bit and see what I can find :)
Quoting Toke Høiland-Jørgensen (2020-12-06 13:03:02)
Or it may be that the same UDP issue you linked also affects the UDP_RR test; I'll dig around in the netperf source code a bit and see what I can find :)
Thanks - much appreciated!
Jonas Smedegaard notifications@github.com writes:
Quoting Toke Høiland-Jørgensen (2020-12-06 13:03:02)
Or it may be that the same UDP issue you linked also affects the UDP_RR test; I'll dig around in the netperf source code a bit and see what I can find :)
Thanks - much appreciated!
OK, poked around in the netperf sources a bit, and it seems the UDP_RR test is not affected by the -R flag, so the issue is most likely with some other source of blocking.
You could try setting up irtt on both server and client and see if that fares better - Flent should automatically pick it up if it's installed on the client, and you just need to start it along with netserver on the server-side:
Quoting Toke Høiland-Jørgensen (2020-12-08 17:19:18)
You could try setting up irtt on both server and client and see if that fares better - Flent should automatically pick it up if it's installed on the client, and you just need to start it along with netserver on the server-side:
Installing irtt service worked. Thanks!
Great! Closing this, then :)
I want to test my internet connection, and wanted to test against a virtual machine at Scaleway - which uses 1:1 NAT (seen from the host itself is a private 10.x.x.x/23 IPv4 address mapped to a public IPv4 address) which apparently require setting an undocumented option -R in netperf.
Please have flent support that custom "re-enable routing which we silently disabled for UDP) netperf option - or support passing custom options if you dislike hardcoding something undocumented.