如何限制stdout的输出速度?


24

我正在运行CentOS 5.7,并且有一个备份实用程序,可以选择将其备份文件转储到stdout。备份文件很大(多个GB)。目标是SSHFS文件系统。为了确保不占用带宽并降低网络性能,我想限制将数据写入“磁盘”的速度。

如何限制stdout基于字节数的能力?例如,将进程的写入能力限制为大约768Bps。


6
@msw这个问题是关于速率限制的stdout,前面的问题是关于限制网络流量的。不同的野兽...
voretaq7 2012年

7
@msw最后,我检查了SE网络的目的是在特定领域中收集大量知识。在这种情况下,大约是* nix。限制输出与stdout限制带宽不同。仅仅因为根本问题是相同的,并不意味着将来的访客不会发现每个问题都独立于其他问题。请记住,Qs&A对Google员工和实际询问者都一样重要,这就是为什么删除已回答的问题在这里是最主要的罪过。
MDMarra 2012年

Answers:


27

您可以将速率限制工具添加到管道中。

例如,pv其中有一个限速选项:

-L RATE, --rate-limit RATE

将传输限制为每秒最大RATE字节。可以添加后缀“ k”,“ m”,“ g”或“ t”来表示千字节(* 1024),兆字节等。

一种替代方法是该工具buffer具有:

   -u microseconds

在每次写入暂停后持续这么多微秒。默认为零。(令人惊讶的是,每次写入之后,只需100毫秒的小睡眠,就可以大大提高某些驱动器的吞吐量。)


3

我很想将其转储到本地磁盘上,而不是直接将其写入远程卷。这样,您就可以使用rsync--bwlimit轻松地限制转让。

这种方法的好处之一是,如果到远程计算机的连接出现故障,则传输将被中断,但是备份本身不会在荣耀中爆炸。


注意。我这样做是希望在我遇到的rsync这种相当有限的情况下,这是一个可行的解决方案。
韦斯利

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.