ethtool в Linux, измерение скорости сетевого  интерфейса


ethtool в Linux — утилита, позволяющая получать информацию об интерфейсе и менять настройки для него.



Утилита есть в репозиториях всех популярынх дистрибутивов, в Ubuntu Debian устанавливается с помощью apt

apt install ethtool



Получать информацию с помощью ethtool получится на физических серверах, для виртуальных машин информативного вывода часто не будет.



Использование ethtool в Linux


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

ethtool enp1s0 | grep -i Speed

Cannot get wake-on-lan settings: Operation not permitted
Speed: 100Mb/s


В примере это 100 Мб/сек.



Скорость можно ограничить до 10 Мбит или другого значения. Для этого после имени утилиты и интерфейса передается флаг -s 10 и значение в мегабитах.



Также, среди возможных опций ethtool в Linux есть режим работы. Дуплекс или полудуплекс. Позволяющий передавать данные, соответственно в двух направлениях или в одном.

duplex half

duplex full


Если полоса пропускания для другого сервера, который взаимодействует с этим, будет меньше 100 Мб/сек — обмен данными будет возможен на его скорости.



Утилита ethtool имеет очень много возможности, данные по ним можно увидеть в man ethtool. Базовое использование — запуск с одним аргументом — именем интерфейса.



Пример приведен на скриншоте:

ethtool в Linux


Для диагностики сети часто также используется netperf.


Вместе Linux утилиты ethtool и netperf служат для проверки пропускной способности при планировании сети и диагностике неполадок.



Диагностика сети сервера


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

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

При диагностике с помощью ethtool проверяется скорость интерфейса.



На сетевом оборудовании также проверяется скорость порта, в который подключены Linux сервера. Затем между двумя серверами фиксируется пропускная способность с помощью netperf или iperf.

Проблемы во внешней сети ищутся с помощью traceroute и mtr.

Сказать спасибо