测量外壳中的管道吞吐量


35

有一个shell命令,它允许您测量数据通过数据的速度,因此您可以测量管道中命令输出的速度。所以代替:

$ somecommand | anothercommand

您可以执行以下操作:

$ somecommand | ??? | anothercommand

我认为吞吐量统计信息(字节/秒)会打印到stderr。但是我无法终生记得那个命令。

Answers:



17

您需要一个名为cpipe的实用程序。

用法:

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
... 

2
不再找到对cpipe...的任何有效引用,但pv等效。
伊夫·马丁

1

如果您拥有Python 2或3和pip(sudo apt-get install python-pip),则可以安装tqdm

    python -m pip install tqdm

然后简单地:

    somecommand | tqdm | anothercommand

如果需要帮助,请运行tqdm --help。它有很多选择。随时阅读更多内容并在https://github.com/tqdm/tqdm上提出建议


1

https://askubuntu.com/a/620234所示,请注意pv,至少可以大大降低您的吞吐量。该文章链接到Covers dd,但要点是,这pv可能会减慢您的工作速度。例如,如果您在乎,以及是否正在传输TB的数据。


0

现在可以使用一种新工具来检查已经在运行的流程文件的访问,显示进度和吞吐量估计:https//github.com/Xfennec/cv

如果您的somecommandanothercommand已被所熟知cv,那么它就和一样容易使用watch cv -wq,否则您必须使用-c选项来专门监视您的流程。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.