我设置了collectd
、InfluxDB
和Grafana
来监控我的服务器。我观察到 Grafana 显示的下载速度(基于collectd
网络插件)比 更高wget
。
我有稳定的 300 Mbps 光纤连接。我选择 Debian Stretch DVD 作为测试文件。
我获得的最大速度为wget
37.6 MB/s(几乎所有时间),大约为 300 Mbps。
collectd
网络插件if_octets
每 10 秒向报告InfluxDB
一次。为了获取接口利用率,我编写了查询(乘以 8,从字节转换为位):
select derivative("value", 1s) * 8 from interface_rx where type = 'if_octets'
我得到的最大值是:
1500155290145892000 3.293407499020192e+08
1500155300145869000 3.219917429810089e+08
1500155310146384000 3.2986061457834923e+08
1500155320146017000 3.2966692997633016e+08
这意味着大约 329 Mbps。
根据 wget,我一直以允许的最大速度(300 Mbps)下载此文件,因此InfluxDB
1 秒derivative
应该可以得到这 10 秒内收集的字节数除以 10,大约为 300 Mbps。
我查询了 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
测量结果之间的差异约为0.33e+10
比特,约为3300 Mb
每十秒,约为330 Mbps
。
1500188090410383000
此外,和1500188100410730000
时间戳之间的差异是0.001 s
,所以这不是问题(3000 Mb
和之间的差异3300 Mb
约为 10%,因此要归咎于collectd
报告时间,它们也应该相差约 10%,即约为1s
。)
这个 329 Mbps 值比我的连接速度限制快,并且与准确wget
值不同。有人知道为什么吗?
K。
答案1
网络服务提供商所宣传的带宽受以下限制:
(a)易于理解(300 比 329.7 更简单)
(b)95百分位计量(https://www.semaphore.com/95th-percentile-bandwidth-metering-explained-and-analyzed/)
(c)突发计费
换句话说,签订合同时他们给您的“300”数字不一定是准确的。
答案2
您忘记了网络开销。wget
报告传输的有效载荷字节数,而接口统计计数器(collectd 使用)包括以太网帧以及 IP 和 TCP 标头,并计算重新传输的数据包。