Как оценить загруженность сетевого интерфейса?

Я создаю приложение которое сильно загружает сетевой интерфейс. Для контроля за его перегрузкой хотелось бы как то оценивать его загруженность и при пороговых значениях применять меры. Но к сожалению я не знаю как оценить загруженность, вернее даже не знаю на какие параметры нужно смотреть и где их найти.


Ответы (3 шт):

Автор решения: Oopss

Утилита iftop полностью закрывает мои потребности в мониторинге, можно также рассмотреть atop.

→ Ссылка
Автор решения: NotYourFox

Под загруженностью интерфейса здесь, как я понимаю, имеется в виду отношение мгновенной скорости приёма/передачи к максимальной.

Статистика об использовании интерфейса находится в каталоге /sys/class/net/<interface>/statistics.

Здесь будут интересовать:

rx_bytes - принято за всё время, байт
rx_packets - принято за всё время, пакетов

tx_bytes - отправлено за всё время, байт
tx_packets - отправлено за всё время, пакетов

Приемлемое решение:

  1. Получить информацию о максимальной скорости интерфейса:

  2. Читать указанные выше файлы через фиксированный промежуток времени (например, каждую секунду), определяя среднюю скорость работы интерфейса за этот промежуток.

  3. Загруженность интерфейса получить, поделив мгновенную скорость на максимальную.

→ Ссылка
Автор решения: arhat

попробуйте использовать утилиту nethogs

→ Ссылка