我的 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 就可以了。