RTL8125 2.5GbE контроллер использует только 1Gb/s, как мне использовать полные 2.5Gb/s? 20.04 LTS

Вопрос или проблема

Я использую расширительную карту PCIe с контроллером RTL8125 2.5GbE. Я успешно установил драйвер Realtek r8125-9.007.01 здесь, но когда я запускаю # lshw -class network, я вижу capacity: 1Gbit/s.

  *-network
       описание: Ethernet интерфейс
       продукт: RTL8125 2.5GbE Контроллер
       производитель: Realtek Semiconductor Co., Ltd.
       физический id: 0
       информация о шине: pci@0000:28:00.0
       логическое имя: enp40s0
       версия: 04
       серийный номер: e0:e1:a9:57:80:94
       пропускная способность: 1Gbit/s
       ширина: 64 бита
       частота: 33MHz
       возможности: pm msi pciexpress msix vpd bus_master cap_list rom ethernet physical tp 10bt 10bt-fd 100bt 100bt-fd 1000bt-fd autonegotiation
       конфигурация: autonegotiation=on broadcast=yes driver=r8125 driverversion=9.007.01-NAPI latency=0 link=no multicast=yes port=twisted pair
       ресурсы: irq:38 ioport:d000(size=256) memory:fcb10000-fcb1ffff memory:fcb20000-fcb23fff memory:fcb00000-fcb0ffff

Я попробовал следующие команды, но они ничего не изменили:

  • # ethtool -s enp40s0 autoneg on advertise 0x80000000002f
  • # ethtool -s enp40s0 speed 2500 duplex full autoneg on

Этот Ethernet порт подключен к ПК с Windows (у которого также есть адаптер 2.5GbE), который показывает 2.5Gb/s в панели управления правильно.

Я пытался скопировать большой файл через samba, и это работает, но только на скорости 1Gb/s. Любая помощь будет приветствоваться! Не должно быть так сложно использовать сетевой интерфейс на его заявленной скорости.

РИДАКТ:
После дальнейших поисков sudo ethtool enp40s0 показывает мне:

sudo ethtool enp40s0
Настройки для enp40s0:
        Поддерживаемые порты: [ TP ]
        Поддерживаемые режимы связи:   10baseT/Полуполный 10baseT/Полный
                                        100baseT/Полуполный 100baseT/Полный
                                        1000baseT/Полный
                                        2500baseT/Полный
        Поддерживает использование кадров паузы: Симметричный Только для приема
        Поддерживает автоматическую настройку: Да
        Поддерживаемые режимы FEC: Не указано
        Рекламируемые режимы связи:  10baseT/Полуполный 10baseT/Полный
                                     100baseT/Полуполный 100baseT/Полный
                                     1000baseT/Полный
                                     2500baseT/Полный
        Рекламируемое использование кадров паузы: Нет
        Рекламируемая автоматическая настройка: Да
        Рекламируемые режимы FEC: Не указано
        Рекламируемые режимы связи партнера:  10baseT/Полуполный 10baseT/Полный
                                             100baseT/Полуполный 100baseT/Полный
                                             1000baseT/Полный
                                             2500baseT/Полный
        Рекламируемое использование кадров паузы партнера: Нет
        Рекламируемая автоматическая настройка партнера: Да
        Рекламируемые режимы FEC партнера: Не указано
        Скорость: 2500Mb/s
        Дуплекс: Полный
        Порт: Витая пара
        PHYAD: 0
        Передатчик: внутренний
        Автоматическая настройка: включена
        MDI-X: Неизвестно
        Поддерживает пробуждение по: pumbg
        Пробуждение по: d
        Текущий уровень сообщений: 0x00000033 (51)
                               drv probe ifdown ifup
        Связь обнаружена: да

что выглядит хорошо для меня, но скорость передачи файла все еще очень медленная для соединения 2.5Gb/s. Есть ли у вас альтернативные способы протестировать скорость, которые вы можете предложить?

Edit2:
Скриншот теста iperf
Похоже, что производительность ограничена только на 1Gb/s в одном направлении! Только когда Ubuntu является приемником, я получаю медленные скорости. Если Ubuntu является отправителем, я получаю полные 2.5Gb/s. На этом этапе это не может быть кабель.

Попробуйте запустить insmod ./src/r8125.ko speed=SPEED_MODE duplex=DUPLEX_MODE autoneg=NWAY_OPTION в каталоге, где вы собрали драйвер.

Ответ или решение

План действий для устранения проблемы с RTL8125 2.5GbE контроллером на Ubuntu 20.04 LTS

Ваш вопрос о том, почему сетевой контроллер RTL8125 на вашем ПК показывает скорость 1 Гбит/с, несмотря на настройку на 2.5 Гбит/с, можно понять через несколько ключевых моментов. Давайте рассмотрим, как вы можете использовать полное пропускное возможностей вашего сетевого адаптера.

1. Проверка оборудования

Первым делом убедитесь, что все компоненты вашего сетевого окружения поддерживают скорость 2.5 Гбит/с:

  • Кабель: Используйте качественный Ethernet-кабель (желательно категории 6 или выше), так как более старые кабели могут не обеспечивать необходимую пропускную способность.
  • Коммутатор или маршрутизатор: Убедитесь, что ваш сетевой коммутатор или маршрутизатор поддерживает 2.5 Гбит/с.

2. Настройка сетевого интерфейса

Следуя вашим действиям с ethtool, мы видим, что вы уже включили автонеготацию и установили скорость вручную. Но, учитывая, что при передаче данных скорость ограничена 1 Гбит/с только в одном направлении, ещё несколько моментов стоит проверить:

Установка драйвера

Убедитесь, что драйвер установлен корректно. Попробуйте переустановить драйвер rtl8125:

sudo modprobe -r r8125
sudo modprobe r8125

Если драйвер был собран вручную, выполните следующее в каталоге сборки:

sudo insmod ./src/r8125.ko speed=2 duplex=1 autoneg=0

Где speed=2 соответствует 2.5 Гбит/с, а duplex=1 устанавливает полный дуплекс.

3. Настройка параметров

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

  • TCP/IP параметры: Убедитесь, что пакетные размеры (MTU) настроены оптимально. Стандартное значение может быть слишком малым для 2.5 Гбит/с. Вы можете изменить MTU на 9000 (Jumbo Frame), если ваше оборудование это поддерживает:
sudo ip link set enp40s0 mtu 9000
  • Настройка параметров Samba: Если вы используете Samba для передачи файлов, проверьте настройки и убедитесь, что они оптимизированы для работы на таких высоких скоростях.

4. Тестирование производительности

Существует несколько способов протестировать связь между вашим компьютером под управлением Ubuntu и Windows, чтобы определить реальную скорость:

  • iperf: Используйте iperf для проверки пропускной способности между двумя системами. Установите iperf на обеих машинах:

На Ubuntu (приемник):

iperf -s

На Windows (отправитель):

iperf -c <IP_адрес_Ubuntu> -t 30
  • Тесты файловой системы: Используйте dd или rsync для передачи больших файлов между системами и оценки скорости:
dd if=/dev/zero of=testfile bs=1G count=1

Переместите testfile из одной системы в другую и измерьте время передачи.

5. Конфигурация Windows

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

Заключение

Если все вышеперечисленные шаги не помогли, подумайте о том, чтобы обратиться к поддержке Realtek или обратитесь на форумы сообщества Linux для получения дополнительной помощи. Возможно, проблема может быть в совместимости конкретных драйверов или версиях ядра. Регулярное обновление системы и драйверов также может решить множество проблем, связанных с производительностью сети.

Оцените материал
Добавить комментарий

Капча загружается...