如果我有proc1 | proc2
办法准确测量流过管道的比特率,而不会改变行为,就好像测量设备不存在一样?像 tee 这样的东西可以吗?我想要proc1 | tee proc2 > flow_measurement_thing
还是proc1 | tee flow_measurement_thing > proc2
?如果我正确理解管道,默认情况下,unix 管道可以咀嚼 4096 字节,如果接收器读取数据的速度不快,它们会阻塞,所以我担心测量设备本身可能会导致“层流”流过如果我没有正确实施,管道会变得“湍流”。
实际用例在 python 中粘合,带有来自 os 的命名管道 .. 这是一个大大简化的示例
import os, subprocess
os.mkfifo('pipe')
subprocess.Popen(['convert', '-i', 'pipe', '-o', 'somewhere_else'])
subprocess.Popen(['capture', '-o', 'pipe'])
为简单起见,让我们假设转换器不修改比特率,那么我希望能够验证是否capture | convert | /dev/null
以与capture | /dev/null