我正在尝试计算当前互联网连接的带宽。我正在通过 snmp 获取当前输入和输出传输速率。如果以下函数的参数是每个输入和输出样本的升序排序列表,这是计算第 95 个百分位数的正确方法吗?
sub ninetyFifth {
#Expects Sorted Data
my $ninetyFifthLine = (@_ * .95) - 1;
return $_[$ninetyFifthLine];
}
答案1
通常,通过 SNMP 获取的值是“自上次清除接口计数器以来发送/接收的总八位字节数”,因此,除非您对其进行了后处理以获取“间隔期间发送的数据”,否则最终只会得到“前 95% 的样本期间发送的数据”。虽然您说的是“传输速率”,但应该没问题(尽管如果它与show interface
Cisco 路由器上的信息显示相同,则它不是实际吞吐量,而是短期吞吐量的指数平均值)。
否则,看起来是正确的。使用 5 分钟间隔时,您最终得到的答案可能与使用 10 秒间隔时不同(且更低),除非您的带宽使用情况异常平稳,但两者都将是所讨论间隔的第 95 个百分位数。