我可以不用 ionic 来节流 tar 吗?

我可以不用 ionic 来节流 tar 吗?

我的 tar 命令

tar --remove-files -cvif 2011-08-02_14-05-09.tar 2011-08-02_14-05-09

写入速度为 80MB/s。这超出了我们可以腾出的容量,因为 MySQL 开始排队写入,最终我们会收到监控警报,因为系统不会永远等待 MySQL 并超时。

问:我可以把速度限制tar到只达到 20MB/s 吗?

在手册页中没有找到任何内容,我们已经尝试了最低ionice级别:/usr/bin/ionice -c3 tar <...>但这不会影响每秒写入的 MB 数,并且 MySQL 仍然会冻结。

也许是ionice因为我们使用的是/dev/md0软件 RAID 设备,所以被忽略了?

答案1

您可以使用速率管道

我下载并试用了它,它似乎很有效。它应该对你有用:

tar --remove-files -cvif - 2011-08-02_14-05-09 | ratepipe -r 20 > 2011-08-02_14-05-09.tar

答案2

您可能可以将 tar 写入 stdout(使用-F -) 并将其导入到某个节流装置中。我会看看是否能快速找到一些东西。

由于 tar 不会缓冲太多内容,因此它应该等待读取。

编辑:MikeB 抢先了一步:ratepipe 就可以了。

相关内容