Monitor network performance

Hi,
not strictly a Fedora question.

I was wondering if there is a way to continually monitor the network performance (WiFi and/or Ethernet) over time.

For example during normal usage there is a sort of agent collecting statistics about the network adapted: signal strength, latency, packets drop …

I am interested in the LAN performance, so ideally should be the router to collect these metrics (from router to device).

The output of:

$ cat /proc/net/dev
Inter-|   Receive                                                |  Transmit
 face |bytes    packets errs drop fifo frame compressed multicast|bytes    packets errs drop fifo colls carrier compressed
    lo:   96781     848    0    0    0     0          0         0    96781     848    0    0    0     0       0          0
wlp0s20f3: 2674635549 3035772    0    0    0     0          0         0 289502926 1099241    0    0    0     0       0          0

gives you an idea about packets dropped but not about performance.

Any ideas?

Thanks

Something like this

2 Likes

This is a good suggestion.

I am trying to understand if my current WiFi setup is able to keep up with other interference/distance or Ethernet will give more consistent performance

I think I am looking more to how much does it take to fetch a packet, having a 50, 99 percentile value over time

In other words how do I measure the health of the network over time.

I am not sure if this makes sense.

1 Like

This is a great, but quite difficult, goal. Coming from a performance testing background, I’d have to say that measurements aren’t usually useful unless repeatable.
If your goal is to determine whether you should use a wireless network or wired for better performance, then you probably want to do something like a large file transfer between your endpoint and another in your local network, timing the transfer. Both endpoints should be nearly idle, so that other activities aren’t impacting the transfer. Here are some things that might vary timing: other endpoints on the same network that are generating or receiving traffic; file data block buffering at each end (the first time you send a file, it will be read from disk, but if you send it again immediately, part of the file may be cached); neighboring wireless networks may create interference when they are very active. And the target endpoint may not really be the best to emulate your real endpoints for your normal activities.
But for just the question of wired versus wireless, that should give you a fair idea. And usually your wireless router will have some statistics that can show interference, such as when your neighbors are streaming over their wireless network.
Good luck.

2 Likes

Thanks for your reply.
My question is more about measuring consistency than peak performance.
I do not really care if I get 50 MB/s peak, for sure I can saturate it, I see it during download.

For example, if I could measure a sort of “response time”: how does it take for each packet transferred from/to device to/from router, plot the values over time (maybe a day); change to Ethernet the next day, overlay the plots.

If, from this measurement, I see that the “response time” with Ethernet is ~10 ms, and 10-50 ms for Wifi, this would be great.

Apart doing some statistics: average, standard deviation, …

The measurement has to be done during normal use; ping, iperf3 will give me momentary situation.

Does this make sense?

1 Like

Well, the “response time” concept doesn’t work well here. The router doesn’t “respond” to each packet, it forwards it to the destination address. You can measure the total amount of traffic sent or received per unit time, which is that “bandwidth” concept; you can measure the amount of time it takes to complete a “transaction” such as a file transfer or web page load. A “ping” test is another type of transaction which will give you an idea of how busy the network segments and store-and-forward devices such as switches and routers are along the path to your destination. For the latter, if you were to ping an endpoint outside your local network, you have to understand that the packets will take varying paths to the destination, and routes and endpoints may change from moment to moment due to load balancing.
Perhaps for what you are seeking you can ping your home router from your workstation a number of times per hour and record the ping response time and variance, comparing the measurements for wired and wireless.

1 Like

Yes you are right, ping on regular interval is good solution