Jak uzyskać średnią prędkość przepływu w rurze

16

Jeśli myfilerośnie z czasem, mogę uzyskać liczbę linii na sekundę za pomocą

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

Daje natychmiastową prędkość, a nie średnią.

Jak mogę uzyskać średnią prędkość (tj. Całkę funkcji prędkości v(t)w czasie monitorowania).

użytkownik123456
źródło

Odpowiedzi:

15

W wersji pv1.2.0 (grudzień 2010 r.) I nowszych dostępna jest -aopcja:

Tutaj zarówno bieżące, jak i średnie, oparte na linii:

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

W wersji 1.3.8 (październik 2012 r.) I nowszych możesz także używać -F/ --formatz %a:

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

Zauważ, że tail -fzaczyna się od zrzucenia ostatnich 10 linii pliku. Użyj, tail -n 0 -f file | pv -laaby uniknąć tego błędu w obliczaniu średniej prędkości.

Stéphane Chazelas
źródło