I set up collectd
, InfluxDB
and Grafana
to monitor my servers.
I observed that Grafana shows (based on collectd
network plugin) higher download speeds than wget
.
I have stable 300 Mbps fiber connection. I chose Debian Stretch DVD as a testing file.
With wget
I got maximum 37,6 MB/s (almost all the time), which is about 300 Mbps.
collectd
network plugin reports if_octets
every 10 seconds to InfluxDB
. To get interface utilization I wrote the query (multiplication by 8 convert to bits from bytes):
select derivative("value", 1s) * 8 from interface_rx where type = 'if_octets'
The maximum values I got are:
1500155290145892000 3.293407499020192e+08
1500155300145869000 3.219917429810089e+08
1500155310146384000 3.2986061457834923e+08
1500155320146017000 3.2966692997633016e+08
Which means about 329 Mbps.
According to wget I was downloading this file with maximum allowed speed (300 Mbps) all the time, so InfluxDB
1 second derivative
should get me the number of bytes gathered during this 10 seconds divided by 10, which should be about 300 Mbps.
I queried raw if_octets
.
select value * 8 from interface_rx where type = 'if_octets'
1500188090410383000 1.1244408992e+10
1500188100410730000 1.4540160304e+10
1500188110411085000 1.783722016e+10
The difference between measurements are about 0.33e+10
bits, which is about 3300 Mb
per ten seconds, which is about 330 Mbps
.
Also, the difference between 1500188090410383000
and 1500188100410730000
timestamps is 0.001 s
, so this is not the issue (the difference between 3000 Mb
and 3300 Mb
is about 10%, so to blame collectd
reporting times they should differ by about 10% too, which is about 1s
.)
This 329 Mbps value is faster than my connection speed limit and is different than accurate wget
value. Does anybody know why?
K.