【发布时间】:2015-03-14 07:06:39
【问题描述】:
我的问题如下:
我有很多小程序,需要知道它们通过网络传输的数据量。 通信使用 tcp/ip。我事先知道端口和 ips。
基本上,我想测量传输的数据,类似于“时间”测量时间的方式,只是输出类似于
sent: 3.5 kB
received: 4.2 kB
而不是时间测量。
我确定有办法做到这一点,但我发现的所有程序要么只是给了我包(如tcpdump),要么以交互方式显示带宽利用率。
带宽对我没有帮助,因为简单地将运行时的带宽测量值相加是不精确的。
tcpdump 的主要问题是,我在客户端上工作,但我只能在服务器上捕获。所以我尝试过的方法是
ssh -t server "sudo tcpdump > capture &"
time ./my-program
ssh -t server "sudo killall tcpdump"
./evaluate.sh capture
但这显然非常糟糕,我真的不知道如何自动化
目前我有 200 多行 Bash 脚本,它已经负责测量基准测试的运行时间。
【问题讨论】:
标签: linux bash testing tcp tcpdump