dstat 的平均输出

dstat 的平均输出

我需要使用平均上传和下载速度dstat -n。如何添加之后出现的所有接收和发送的数据大小dstat -n,以便我可以添加它们并找到一段时间内的平均上传和下载速度?

答案1

您基本上想要dstat为您提供给定时间(例如 120 秒)的平均值。这与vmstator完全相同ifstat,第一个参数是delay,这意味着在给定时间内提供平均值。默认值为 1 秒。

所以这应该做:

dstat -n 120

或对于给定的接口eth0eth1,执行以下操作:

dstat -n -N eth0,eth1 120

或对于所有接口:

dstat -n -f 120

但如果您更喜欢一些可以进行后处理的输出,那么让它写出 CSV 数据可能更有趣:

dstat -n -f -o stat.csv 120

这会将 120 秒的平均值写入名为stat.csv.

答案2

由于没有人回答,我已经弄清楚了。以下是具体操作方法。假设我们需要对“2 分钟(120 秒)”进行平均。首先将其写入名为 stat.txt 的文件。每秒刷新 120 次。

   dstat -n 1 120 >> stat.txt

添加 stat.txt 的列

   awk -F" " '{t1=t1+$1;t2=t2+$2}END{t1=t1/120;t2=t2/120;print t1"\t"t2}' stat.txt

删除stat.txt

   rm stat.txt

我们也可以根据这些命令制作一个脚本。

答案3

看来 dstat 是一个重命名/黑客版本系统状态命令,这些将为您提供测量的流量,而不是带宽(“速度”)。为了达到这个目的(这取决于目标系统的负载、到达那里的路径……),请使用像curl(1)这样的东西,它会告诉你平均速度是多少。此外,大多数家庭安装都是不对称的,您的上传带宽只是下载带宽的一小部分。

还要考虑到原始带宽是不够的,延迟对于交互式应用程序(尤其是游戏)至关重要。

或许看看缓冲区膨胀现象亦有规律。

相关内容