Как я могу получить максимальную скорость передачи любого данного сетевого интерфейса

Есть ли способ получить максимальную и текущую скорость передачи данных (кбит/с) с помощью ifconfig или маршрута для любого заданного сетевого интерфейса? Я не уверен, что полностью понимаю, что именно я ищу.

Я подумал о парсинге /proc/net/dev и поиске аналогии между полученными и переданными байтами. Также MTU - это то же самое, что и максимальная скорость передачи данных? если да, могу ли я использовать netstat -in вместо этого?

P.S. Работаю на Java. (убунту 10.04)


person Stelios Savva    schedule 27.10.2012    source источник


Ответы (1)


Регулярное считывание /proc/net/dev даст вам скорость передачи.

Обновление (чтобы уточнить, что я хотел обозначить формулировкой: "Читаю... на регулярной основе..."):

/proc/bnet/dev показывает количество переданных данных. Чтобы получить скорость передачи, вам нужно прочитать это дважды и разделить разницу на время, прошедшее между двумя чтениями.

person alk    schedule 27.10.2012
comment
Влияет ли это на результат, когда данные из /proc/net/dev сбрасываются, как только они достигают порога в 4 ГБ? спасибо кстати - person Stelios Savva; 27.10.2012
comment
Это зависит от того, как вы интерпретируете то, что читаете. Если, например, bytes-tx(T-1) > bytes-tx(T), вы действительно должны предположить, что счетчик был сброшен между T-1 и T. @Стелсавва - person alk; 27.10.2012