有一个 shell 命令允许您测量数据通过它的速度,因此您可以测量管道中命令的输出速度。所以而不是:
$ somecommand | anothercommand
你可以这样做:
$ somecommand | ??? | anothercommand
我认为吞吐量统计数据(字节/秒)会打印到 stderr。但我一辈子都记不起那个命令是什么。
答案1
答案2
你需要一个名为管道。
用法:
tar cCf / - usr | cpipe -vr -vw -vt > /dev/null
输出:
...
in: 19.541ms at 6.4MB/s ( 4.7MB/s avg) 2.0MB
out: 0.004ms at 30.5GB/s ( 27.1GB/s avg) 2.0MB
thru: 19.865ms at 6.3MB/s ( 4.6MB/s avg) 2.0MB
...
答案3
正如所见https://askubuntu.com/a/620234,请注意pv
,至少会显着降低您的吞吐量。这篇文章链接到了 cover dd
,但重点是它pv
会减慢你的速度。如果您关心,例如您正在传输 TB 级的数据。
答案4
现在可以使用一个新工具来检查已运行的进程文件访问、显示进度和吞吐量估计:https://github.com/Xfennec/cv
如果您的somecommand
或anothercommand
已被 已知cv
,则它与 一样易于使用watch cv -wq
,否则您必须使用-c
选项来专门监视您的进程。