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.
Best Answer
Advertised bandwidths from network service providers are subject to:
(a) ease of understanding (300 is simpler than 329.7)
(b) 95th percentile metering (https://www.semaphore.com/95th-percentile-bandwidth-metering-explained-and-analyzed/)
(c) burstable billing
In other words, the "300" number they gave you when you signed your contract does not necessarily have to be accurate.