Как узнать пропускную способность сетевых интерфейсов?

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

Я могу получить информацию о пропускной способности сетевого интерфейса с помощью lshw, но в каком файле в sysfs хранится эта информация (т.е. в каком файле в каталоге /sys/class/net/eth0/device/)?

$ sudo lshw -class network
  *-network               
       описание: Ethernet интерфейс
       продукт: 82579LM Gigabit Сетевое Соединение
       поставщик: Intel Corporation
       физический id: 19
       информация о шине: pci@0000:00:19.0
       логическое имя: eth0
       версия: 04
       серийный номер: 3c:97:0e:b4:5c:6a
       пропускная способность: 1Gbit/s
       ширина: 32 бита
       тактовая частота: 33MHz
       возможности: pm msi bus_master cap_list ethernet physical tp 10bt 10bt-fd 100bt 100bt-fd 1000bt-fd autonegotiation
       конфигурация: autonegotiation=on broadcast=yes driver=e1000e driverversion=2.3.2-k firmware=0.13-3 latency=0 link=no multicast=yes port=twisted pair
       ресурсы: irq:43 memory:f2500000-f251ffff memory:f253b000-f253bfff ioport:6080(size=32)


$ ls /sys/class/net/eth0/device/
broken_parity_status      d3cold_allowed  enable         local_cpus  net        remove    resource0  subsystem_device
class                     device          firmware_node  modalias    numa_node  rescan    resource1  subsystem_vendor
config                    dma_mask_bits   irq            msi_bus     power      reset     resource2  uevent
consistent_dma_mask_bits  driver          local_cpulist  msi_irqs    ptp        resource  subsystem  vendor

Вы смотрите не в том месте.

Посмотрите в /sys/class/net/<device>/speed.

Вы можете проверить пропускную способность интерфейса следующими способами.

  1. dmesg | grep eth0

  2. mii-tool -v eth0

  3. ethtool eth0

Примечание: Измените имя устройства в соответствии с вашим.

В общем, вы можете узнать это, используя инструмент, такой как strace:

sudo  strace -e trace=file -f -s128  lshw -class network

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

Для определения пропускной способности сетевых интерфейсов в Linux существует несколько методов и инструментов. В данной статье мы подробно рассмотрим доступные способы и укажем, какие файлы в файловой системе sysfs могут предоставить необходимую информацию.

Поиск информации о пропускной способности сетевого интерфейса

Основным файлом, в котором содержится информация о скорости сетевого интерфейса, является файл speed, который расположен по следующему пути:

/sys/class/net/<имя_интерфейса>/speed

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

cat /sys/class/net/eth0/speed

Это вернет скорость интерфейса в мегабитах в секунду (Mbit/s).

Доступные инструменты для визуализации пропускной способности

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

  1. dmesg:
    Вы можете просмотреть сообщения ядра, связанные с интерфейсом eth0 с помощью следующей команды:

    dmesg | grep eth0

    Эта команда позволит увидеть сообщения о загрузке и конфигурации сетевого интерфейса.

  2. mii-tool:
    Этот инструмент позволяет получить информацию о состоянии интерфейса:

    mii-tool -v eth0

    Здесь можно найти данные о скорости и дуплексном режиме соединения.

  3. ethtool:
    Это мощный инструмент для настройки и получения информации о сетевых интерфейсах. Используйте следующую команду:

    ethtool eth0

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

Альтернативные способы получения информации

Еще один подход к извлечению информации о запроса к файловой системе заключается в использовании инструментов, таких как strace. С помощью этой утилиты вы можете отследить системные вызовы, которые выполняет команда lshw:

sudo strace -e trace=file -f -s128 lshw -class network

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

Заключение

Итак, существует несколько способов определения пропускной способности сетевого интерфейса в Linux. Важно помнить, что для получения быстрого доступа к данным о скорости интерфейсов лучше всего использовать файл /sys/class/net/<device>/speed. Тем не менее, в зависимости от ваших потребностей, вы можете обратиться к другим инструментам, таким как dmesg, mii-tool или ethtool, чтобы получить более полное представление о состоянии вашего сетевого оборудования.

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

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

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