Мне нужно измерить использование сети на определенном интерфейсе в определенное время. Я провожу некоторые эксперименты с приложением, поэтому мне нужно знать, сколько данных передается на определенном интерфейсе. Итак, все происходит так:
1- start recording network usage
2- start the program
3- end the program
4- stop recording network usage
Я знаю такие инструменты, каквнстатизагрузкасуществуют, но, похоже, у них нет нужной мне функции
решение1
vnstat -l
делает то, что вам нужно
Просто откройте окно терминала и введите vnstat -l
. Затем запустите программу, которая потребляет сетевую пропускную способность. Когда ваша программа завершится, вернитесь в окно терминала и нажмите Ctrl+ C. Затем терминал покажет прошедшее время и потребленный сетевой трафик:
$ vnstat -l
Monitoring enp59s0... (press CTRL-C to stop)
rx: 1.74 Mbit/s 149 p/s tx: 32 kbit/s 62 p/s^C
enp59s0 / traffic statistics
rx | tx
--------------------------------------+------------------
bytes 7.40 MiB | 142 KiB
--------------------------------------+------------------
max 1.84 Mbit/s | 35 kbit/s
average 1.68 Mbit/s | 31.53 kbit/s
min 1.51 Mbit/s | 29 kbit/s
--------------------------------------+------------------
packets 5215 | 2187
--------------------------------------+------------------
max 157 p/s | 68 p/s
average 144 p/s | 60 p/s
min 129 p/s | 55 p/s
--------------------------------------+------------------
time 36 seconds