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

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

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

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

Он показывает мгновенную скорость, а не среднюю.

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

решение1

В 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чтобы избежать этого смещения в расчете средней скорости.

Связанный контент