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

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


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



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

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

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

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

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

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

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

/sys/class/net/<interface>/speed для интерфейсов проводных сетей

любым из способов из этого вопроса для беспроводных сетей.

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

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


Report Page