Linux скорость передачи данных

Ethtool: как изменить скорость, дуплекс и находить неполадки сетевой карты в Linux

img

Конфигурация вашей сетевой карты напрямую влияет, насколько эффективно взаимодействуют ваши сервера.

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

Ethtool

В этой статье вы узнаете, как изменить настройки скорости, дуплекса и автосогласования в Linux с помощью команд ethtool .

Что такое полудуплекс, полный дуплекс и автосогласование?

Полудуплексный режим (Half-duplex) позволяет устройству отправлять или получать пакеты по очереди. Устройство, установленное в этот режим, не может выполнять оба действия одновременно.

Когда режим устройства находится в полнодуплексном режиме (Full-duplex), он также может отправлять и получать пакеты одновременно.

Автосогласование (Auto-Negotiation) — это механизм, с помощью которого устройство автоматически выбирает наиболее эффективный режим передачи на основе характеристик своих аналогов. Рекомендуется оставить автосогласование включенным, поскольку оно позволяет устройствам выбирать наиболее эффективные средства для передачи данных.

Полудуплекс и полный дуплекс

Что такое дуплексное несоответствие?

Такое происходит когда устройство с включенным автосогласованием подключается к устройству, которое не использует автосогласование. Конец соединения с активным автосогласованием все еще может определить скорость другого конца, но не может правильно определить дуплексный режим. Как правило, конец соединения с автоматическим согласованием будет использовать полудуплекс, тогда как другой конец может быть в дуплексном режиме. Эта ситуация считается дуплексным несоответствием (duplex mismatch).

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

Как использовать команду Ethtool для настройки параметров сетевого адаптера

Ethtool — это команда конфигурации платы сетевого интерфейса, которая позволяет вам получать информацию и изменять настройки сетевого адаптера. Эти настройки включают скорость, дуплекс, автосогласование и многие другие параметры.

Помимо этого, ethtool используется для:

  1. Получения идентификационной и диагностической информации
  2. Получения расширенной статистики устройства
  3. Контроля контрольной суммы
  4. Контроля размеров кольца DMA и модерации прерываний
  5. Контроля выбора очереди приема для устройств с несколькими очередями
  6. Обновления прошивки во флеш-памяти
Читайте также:  Linux установить файлу права доступа

Для установки ethtool используйте следующие команды:

yum install ethtool [в Fedora, CentOS, RHEL] sudo apt-get install ethtool [в Ubuntu, Debian]

Чтобы продолжить, вам нужно знать имя вашей сетевой карты.

Чтобы найти имя вашей сетевой карты, введите в командном терминале следующую команду:

Вывод покажет нам имя сетевой карты устройства.

enp0s3 Link encap:Ethernet HWaddr 00:1A:2B:3C:4D:5E

Теперь, когда вы определили имя устройства, проверьте текущие настройки скорости, автосогласования и дуплексного режима с помощью команды: ethtool имя_устройства .

В нашем конкретном примере команда выглядит так:

Выходные данные показывают, что текущая скорость равна 1000 Мбит/с, что дуплекс находится в режиме «Full», и что автосогласование включено.

ethtool enp0s3

Изменение настроек сетевого адаптера

Команда ethtool –s может использоваться для изменения текущих настроек путем определения значений скорости speed , дуплекса duplex и автосогласования autoneg в следующем формате:

sudo ethtool –s [device_name] speed [10/100/1000] duplex [half/full] autoneg [on/off]

Например, чтобы установить скорость 1000 Мбит/с, дуплексный режим — «полный», а автоматическое согласование — «включено», команда будет выглядеть так:

sudo ethtool –s enp0s3 speed 1000 duplex full autoneg on

Команда ethtool [имя_устройства] необходима для подтверждения того, что изменения были применены.

Сохранение настроек

Изменения, сделанные с помощью Ethtool, по умолчанию отменяются после перезагрузки системы.

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

vi /etc/sysconfig/network-scripts/ifcfg-enp0s3

Добавьте нужные значения в виде строки в конце файла, используя следующий синтаксис:

ETHTOOL_OPTS prettyprint"> ETHTOOL_OPTS prettyprint"> sudo ethtool -S имя_устройства

Вывод этой команды будет выглядеть так:

NIC statistics: rx_packets: 108048475 tx_packets: 125002612 rx_bytes: 17446338197 tx_bytes: 113281003056 rx_broadcast: 83067 tx_broadcast: 1329 rx_multicast: 3 tx_multicast: 9 rx_errors: 0 tx_errors: 0 tx_dropped: 0 multicast: 3 collisions: 0 rx_length_errors: 0 rx_over_errors: 0 rx_crc_errors: 0 rx_frame_errors: 0 rx_no_buffer_count: 0 rx_missed_errors: 0 tx_aborted_errors: 0 tx_carrier_errors: 0 tx_fifo_errors: 0 tx_heartbeat_errors: 0 tx_window_errors: 0 tx_abort_late_coll: 0 tx_deferred_ok: 0 tx_single_coll_ok: 0 tx_multi_coll_ok: 0 tx_timeout_count: 0 tx_restart_queue: 2367 rx_long_length_errors: 0 rx_short_length_errors: 0 rx_align_errors: 0 tx_tcp_seg_good: 0 tx_tcp_seg_failed: 0 rx_flow_control_xon: 0 rx_flow_control_xoff: 0 tx_flow_control_xon: 0 tx_flow_control_xoff: 0 rx_long_byte_count: 17446338197 rx_csum_offload_good: 107876452 rx_csum_offload_errors: 2386 rx_header_split: 0 alloc_rx_buff_failed: 0 tx_smbus: 0 rx_smbus: 0 dropped_smbus: 0 rx_dma_failed: 0 tx_dma_failed: 0

Использование приведенной выше команды — отличный способ устранения проблем с конкретной сетевой картой.

Физическое расположение конкретного сетевого адаптера

Вот действительно полезный трюк, который предлагает ethtool : допустим у вас есть сервер с несколькими сетевыми картами, и одна из них работает со сбоями, но вы не уверены, какая именно это карта. Вы можете использовать ethtool , чтобы заставить мигать индикатор сетевого адаптера, чтобы определить, какой сетевой адаптер вам нужен. Скажем, если вы хотите мигать светодиодом устройства Ethernet enp0s3 в течение 15 секунд — команда для этого будет выглядеть так:

Светодиод начнет мигать, чтобы вы знали, с какой картой вы имеете дело.

Тестирование сетевой карты

Команда ethtool предлагает пару удобных тестов, которые вы можете запустить на сетевой карте:

  1. Online — тесты nvram и тест ссылок
  2. Offline — тестирует регистр, память, loopback, прерывание
Читайте также:  Running script files in linux

Давайте запустим онлайн-тест на нашей сетевой карте. Эта команда выглядит так:

sudo ethtool -t enp0s3 online

После выполнения команда покажет нам результаты:

ethtool тест

Учтите, что некоторые устройства не поддерживают offline тестирование.

Информация о драйвере

Чтобы узнать имя драйвера и связанную информацию о драйвере используйте:

driver: via-rhine version: 1.5.0 firmware-version: bus-info: 0000:00:06.0 supports-statistics: no supports-test: no supports-eeprom-access: no supports-register-dump: no supports-priv-flags: no

Заключение

Следуя этому руководству, вы успешно изменили настройки своей сетевой карты с помощью команд ethtool . Вы также лучше поняли, как режимы автосогласования и дуплекса влияют на производительность сервера. И заодно узнали пару интересных функций команды ethtool .

Источник

Мониторинг пропускной способности и скорости сети в Linux

img

Сегодня в статье рассказываем про инструменты с открытым исходным кодом, которые позволяют вам проверить скорость вашего Интернета и пропускную способность в Linux.

DevOps

Speedtest

Speedtest — старый фаворит. Это инструмент для проверки скорости загрузки и скачивания с использованием speedtest.net. Он реализован на Python, упакован в Apt, а также доступен с pip. Вы можете использовать его как инструмент командной строки или в скрипте Python.

sudo apt install speedtest-cli
sudo pip3 install speedtest-cli

Затем запустите его с помощью команды speedtest :

speedtest Retrieving speedtest.net configuration. Testing from CenturyLink (65.128.194.58). Retrieving speedtest.net server list. Selecting best server based on ping. Hosted by CenturyLink (Cambridge, UK) [20.49 km]: 31.566 ms Testing download speed. Download: 68.62 Mbit/s Testing upload speed. Upload: 10.93 Mbit/s

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

Fast

Fast — это услуга, предоставляемая Netflix. Его веб-интерфейс расположен на Fast.com, а интерфейс командной строки доступен через npm:

npm install --global fast-cli

И веб-сайт, и утилита командной строки предоставляют один и тот же базовый интерфейс — это простой тест скорости, и ничего лишнего:

Команда показывает вашу скорость скачивания (download) через Интернет. Чтобы получить скорость загрузки (upload), используйте флаг -u :

fast -u ? 80 Mbps v / 8.2 Mbps ^

iPerf

iPerf (iPerf3) — отличный способ проверить скорость вашей локальной сети (а не скорость Интернета, как это делают два предыдущих инструмента). Пользователи Debian, Raspbian и Ubuntu могут установить его с помощью apt:

sudo apt install iperf [Debian/Ubuntu] yum install epel-release [RHEL/CentOS] yum install iperf3 [RHEL/CentOS]

iPerf также доступен в Window и Mac

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

ip addr show | grep inet.*brd

Запустите iperf на сервере:

Читайте также:  Epson l3101 драйвера linux

Это компьютер входящих соединений от клиентов. Теперь запустите на втором компьютере iperf с флагом -c и укажите ip-адрес сервера.

NetHogs

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

yum install epel-release [RHEL/CentOS] yum install nethogs [RHEL/CentOS] apt install nethogs [Debian/Ubuntu]

nethogs

Вы можете указать определенный интерфейс после команды:

Также у команды есть дополнительные параметры, такие как выбор задержки для частоты обновления -d , информации о версии -V , tracemode -t .

nload

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

nload

  • device — выбор интерфейса
  • -a — промежуток в секундах, для подсчитывания среднего значения
  • -i — стопроцентная планка на графике пропускной способности в kBit/s
  • -m — отображение нескольких интерфейсов, без графика
  • -t — интервал обновления в миллисекундах
  • -u — режим отображения: Bit/s, kBit/s, MBit/s

Для установки используйте:

sudo apt install nload [Debian/Ubuntu] yum install epel-release [RHEL/CentOS] um install nload [RHEL/CentOS]

CBM – Color Bandwidth Meter

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

CBM

Для установки используйте команду:

sudo apt install cbm -y [Debian/Ubuntu] yum install epel-release [RHEL/CentOS] yum install cbm [RHEL/CentOS]

После этого просто запустите:

vnStat

vnStat — это монитор сетевого трафика, который использует статистику сетевого интерфейса, предоставляемую ядром, что означает что он не будет перехватывать трафик и в результате гарантирует низкую загрузку ЦПУ. Особенность vnStst в том, что он сохраняет все данные в собственной базе.

vnStat

vnStat также предоставляет веб-интерфейс на основе php для отображения графической статистики. Для настройки веб-интерфейса vnStat в вашей системе должны быть установлены пакеты Apache , php и php-gd .

Веб-интерфейс vnStat

Для установки используйте команду:

sudo apt install vnstat [Debian/Ubuntu] sudo yum install epel-release [RHEL/CentOS] sudo yum install vnstat [RHEL/CentOS]

iftop

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

iftop

Для установки используйте:

sudo apt install iftop [Debian/Ubuntu] yum install epel-release[RHEL/CentOS] yum install iftop [RHEL/CentOS]

Будет произведен запуск с мониторингом всех интерфейсов.

slurm

slurm — это еще один инструмент мониторинга сетевой нагрузки для linux, который показывает результаты в графике ascii.

slurm

sudo apt-get install slurm [Debian/Ubuntu] sudo yum install slurm -y [RHEL/CentOS]

Источник

Оцените статью
Adblock
detector