Для системы ненормально задушить дисковый ввод-вывод и требовать ограничения пропускной способности, но вы задали вопрос для StackOverflow, а не для ServerFault, поэтому ...
Команда pv
работает так, как объявлено. Причина, по которой вы видите всплеск скорости, заключается в том, что tar
был временно слишком медленным, поэтому pv
позволил ему считывать быстрее, чтобы восстановить в среднем до 5 МБ / с.
Любой данный фрагмент в 5 МБ Данные в сжатом виде могут соответствовать чему-либо от 5 МБ до 100 МБ + несжатых данных, поэтому, чтобы сделать обработку более равномерной, вы можете применить ее после декомпрессии вместо:
gzip -d < db.tar.gz | pv -L 5M | tar x
В противном случае вы можете взломать вместе bash l oop, который будет писать в устойчивом темпе и не допускать наверстывания:
cat db.tar.gz |
while sleep 1 && [[ $(LC_ALL=C dd bs=5M count=1 2>&1 >&3) != "0+0 records"* ]] 3>&1; do true; done |
pv |
tar xz