Как получить среднюю скорость потока в трубе

16

Если myfileсо временем увеличивается, я могу получить число строк в секунду, используя

tail -f | pv -lr > /dev/null

Это дает мгновенную скорость, а не среднюю.

Как я могу получить среднюю скорость (т. Е. Интеграл от функции скорости v(t)за время мониторинга).

user123456
источник

Ответы:

15

Начиная pvс версии 1.2.0 (декабрь 2010 г.) и выше, есть -aопция:

Здесь с текущим и средним, на основе строки:

$ find / 2> /dev/null | pv -ral > /dev/null
[6.28k/s] [70.1k/s]

Начиная с версии 1.3.8 (октябрь 2012 г.) и выше, вы также можете использовать -F/ --formatс %a:

$ find / 2> /dev/null | pv -lF 'current: %r, average: %a'  > /dev/null
current: [4.66k/s], average: [ 218k/s]

Обратите внимание, что tail -fначинается с дампа последних 10 строк файла. Используйте, tail -n 0 -f file | pv -laчтобы избежать этого смещения в расчете средней скорости.

Стефан Шазелас
источник