带宽的 95% 计算

Kyl*_*ndt 5 networking bandwidth

我正在尝试计算当前 Internet 连接的带宽。我正在通过 snmp 拉动当前的输入和输出传输速率。如果以下函数的参数是每个输入和输出样本的某个的升序排序列表,这是计算第 95 个百分位数的正确方法吗?

sub ninetyFifth {
    #Expects Sorted Data
    my $ninetyFifthLine = (@_ * .95) - 1;
    return $_[$ninetyFifthLine];
}
Run Code Online (Sandbox Code Playgroud)

Vat*_*ine 2

通常,通过 SNMP 获取的值是“自上次接口计数器清除以来发送/接收的总八位字节”,因此除非您对其进行后处理以获取“间隔期间发送的数据”,否则您最终只会得到“发送的数据”在前 95% 的样本中”。虽然你说的是“传输速率”,所以应该没问题(尽管如果它与Cisco路由器上的信息上显示的相同show interface,那么它不是实际吞吐量,而是短期吞吐量的指数平均值)。

否则,看起来是对的。使用 5 分钟间隔与使用 10 秒间隔时,您可能会得到不同(且更低)的答案,除非您的带宽使用异常平滑,但两者都将是相关间隔的第 95 个百分位。