Какое прерывание использует сетевая карта

Обновлено: 03.07.2024

Приведу пример распределения прерываний сетевых интерфейсов по ядрам процессора.
Для примера возьму сервер с accel-ppp, трафик 6Gb/s, 500K+pps, nat с ipoe и 6000 dchp клиентов.
Также обязательно отключите гиперпоточность в BIOS, так как балансировка нагрузки на виртуальные ядра может сильно увеличить нагрузку на некоторые физические ядра.

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

Также в режиме реального времени посмотрим, как загружаются ядра процессора, выполняя команду «top» и нажимая «1», и что загружается, вводя команды:

Посмотрим, равномерно ли прерываются потоки трафика, должны быть примерно одинаковые значения счетчиков (пример для ixgbe):

Для i40e вот так:

Посмотрим, сколько прерываний возможно и активно на сетевом интерфейсе:

Например, у меня было два процессора e5-2680 по 8 ядер в каждом сервере, двухпортовая сетевая карта HP 562SFP+ была в numa0 первого процессора и irqbalance распределил 16 прерываний обоих сетевых интерфейсов на 7 ядер первого первый процессор, кроме ядра 0.

Поэтому я сначала вручную указал 8 прерываний вместо 16:

Давайте настроим RSS. Вы можете назначить прерывание сетевого интерфейса конкретному ядру процессора следующим образом (где «X» — это номер прерывания, указанный в первом столбце /proc/interrupts, а «N» — маска процессора):

Посмотрел таблицу номеров прерываний сетевых интерфейсов:

Посмотрел, как я распределил нагрузку irqbalance для первого порта на сетевой карте (ens1f0):

Отображалось:

Как загрузить нагрузку irqbalance для второго порта сетевой карты (ens1f1):

Отображалось:

Вы также можете увидеть адрес PCI 0000:04:00.0:

Как мы видим по RSS, irqbalance в моем случае криво распределял нагрузку, хотя на графиках zabbix нагрузка была примерно равная, но простаивало 0 ядер.

Маску процессора можно определить с помощью bc по формуле:

Например, рассчитайте для 28 ядер:

Я получил результат:

Перед внесением изменений обязательно остановите irqbalance и уберите его из автозапуска при старте системы, так как он начнет возвращать свои значения:

Соответственно, я выполнил приведенные ниже команды, чтобы привязать 8 прерываний обоих сетевых интерфейсов к 8 ядрам процессора:

Нагрузка на ядра стала чуть более равномерной, чем в случае с irqbalance.

Посмотрим, как настроен RPS (Receive Packet Steering — программный аналог аппаратного RSS), у меня по умолчанию выведено 00000000,00000000:

Я не включал RPS, но это очень полезно, когда на сетевом интерфейсе меньше прерываний, чем на основном процессоре. Дополнительные сведения см. в моей статье:
Настройка RPS (управление приемом пакетов)

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

Хотите улучшить этот вопрос? Обновите вопрос, чтобы он соответствовал теме сбоя сервера.

Закрыт 8 лет назад.

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

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

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

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

А, только что понял, что это обновление. Это pfSense 2.0.3, так что я полагаю, что это базовая версия FreeBSD 8.2. Я не уверен в оборудовании. Его давно либо выбросили, либо забыли в "тестовой" куче.

1 Ответ 1

Теоретически я знаю, как работает аппаратное прерывание, но как оно работает, когда сетевая карта получает пакеты информации? Что происходит на аппаратном уровне?

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

Если сетевая карта решает отправить прерывание, фактический механизм зависит от интерфейса сетевой карты и его настройки. Старый способ заключался в изменении напряжения на выделенной линии прерывания. Это будет передано контроллеру прерываний, который обычно выдает какую-то другую линию, объединяющую несколько прерываний. Затем ОС запрашивает контроллер прерываний, какие прерывания сработали.

Новый способ — это «прерывания с сигналом сообщения» (MSI), когда сетевая карта записывает определенное слово по определенному адресу, что приводит к генерации прерывания каким-либо другим устройством, обычно контроллером шины. Это позволяет устройству иметь больше прерываний, а также нацеливать прерывания на определенные процессоры.

Как правильно диагностировать, произошло ли физическое повреждение, чтобы избежать того, что, по сути, равносильно бросанию деталей в проблему?

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

Получите полный доступ к Understanding the Linux Kernel, Second Edition и более чем 60 000 других книг с бесплатной 10-дневной пробной версией O'Reilly.

Есть также прямые онлайн-мероприятия, интерактивный контент, материалы для подготовки к сертификации и многое другое.

Эта глава в основном посвящена тому, как ядро ​​обрабатывает передачу сетевых пакетов. Мы уже рассмотрели многие важные структуры данных сетевого кода, поэтому просто дадим краткое описание другой стороны истории; а именно, как получен сетевой пакет.

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

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

Сетевое устройство сохраняет пакет в буфере в памяти устройства (карта обычно хранит сразу несколько пакетов в кольцевом буфере).

Сетевое устройство вызывает прерывание.

Обработчик прерываний выделяет и инициализирует новый буфер сокета для пакета.

Обработчик прерываний копирует пакет из памяти устройства в буфер сокета.

Обработчик прерывания вызывает функцию (такую ​​как функция eth_type_trans() для Ethernet и IEEE 802.3) для определения протокола пакета, инкапсулированного в кадр канала передачи данных.

Обработчик прерываний вызывает функцию netif_rx(), чтобы уведомить сетевой код Linux о поступлении нового пакета и необходимости его обработки.

Конечно, обработчик прерываний зависит от устройства сетевой карты. Многие .

Получите понимание ядра Linux, второе издание прямо сейчас с онлайн-обучением O’Reilly.

Члены O’Reilly проходят онлайн-обучение в режиме реального времени, а также получают книги, видео и цифровой контент от более чем 200 издателей.

Сетевая карта — это основное устройство, используемое для подключения к сети. Хотя сетевые карты традиционно ассоциируются с ПК, ноутбуками и серверами, они могут существовать практически в любом сетевом устройстве, включая принтеры, телефоны и сканеры. В некотором сетевом оборудовании, таком как коммутаторы, используемые для сетевых массивов хранения, имеются сменные модули, позволяющие использовать различные типы подключения. Эти модули технически также являются сетевыми адаптерами.

Как мы обсуждали ранее в этой главе, каждая сетевая карта имеет MAC-адрес в топологиях Ethernet или Token Ring. Этот уникальный аппаратный адрес определяет, как идентифицируется сетевая карта, чтобы гарантировать, что данные попадут в правильную систему. MAC-адрес обычно можно изменить при необходимости, но все сетевые адаптеры будут иметь предварительно назначенный MAC-адрес, связанный с сетевым адаптером. В зависимости от того, как управление конфигурацией осуществляется на предприятии, эти MAC-адреса могут быть установлены в соответствии с определенным стандартом, записаны для целей инвентаризации или потенциально использованы для определения того, следует ли разрешить использование конкретной системы в сети. Эта функция безопасности чаще всего используется в беспроводных сетях, в которых фильтрация MAC-адресов является стандартным параметром конфигурации.

Понимание технологии

Литтлджон Шиндер, Майкл Кросс, сцена киберпреступления (второе издание), 2008 г.

Роль сетевой карты

сетевая интерфейсная карта (NIC) или сетевая карта — это аппаратное устройство, наиболее важное для установления связи между компьютерами. Хотя существуют способы подключения компьютеров без сетевой карты (например, с помощью модема по телефонным линиям или последовательного «нуль-модемного» кабеля), в большинстве случаев, когда есть сеть, для каждого участвующего компьютера есть сетевая карта.

Сетевая карта отвечает за подготовку данных для отправки по сети. То, как именно выполняется эта подготовка, зависит от используемой среды. Большинство современных сетей используют Ethernet. Ethernet был разработан в 1960-х годах по спецификациям, разработанным Digital, Intel и Xerox (в соответствии со стандартами IEEE 802.3). Он использует метод доступа к сети, называемый множественным доступом/обнаружением конфликтов несущей (CSMA/CD), при котором каждый компьютер контролирует сеть, чтобы гарантировать, что никто другой не отправляет данные по той же кабельной линии. Если два компьютера отправляют данные одновременно, это вызывает конфликт, который обнаруживается другими рабочими станциями, и компьютеры будут ждать случайный интервал времени, чтобы снова отправить данные.

Домен 2

Эрик Конрад, . Джошуа Фельдман, учебное пособие CISSP (второе издание), 2012 г.

Управляемый, главный, специальный режим и режим мониторинга

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

Главный режим (также называемый режимом инфраструктуры) – это режим, используемый точками беспроводного доступа. Беспроводная карта в ведущем режиме может обмениваться данными только с подключенными клиентами в управляемом режиме.

Режим Ad hoc — это одноранговый режим без центральной точки доступа. Компьютер, подключенный к Интернету через проводную сетевую карту, может объявить специальную беспроводную локальную сеть, чтобы разрешить общий доступ к Интернету.

Наконец, режим монитора — это режим только для чтения, используемый для прослушивания беспроводных локальных сетей. Инструменты анализа беспроводных сетей, такие как Kismet или Wellenreiter, используют режим мониторинга для чтения всех беспроводных кадров 802.11.

Устранение неполадок сети

Наоми Дж. Альперн, Роберт Дж. Шимонски, Eleventh Hour Network+, 2010 г.

Устранение неполадок на физическом уровне

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

Устранение неполадок сетевой карты ■

Убедитесь, что сетевая карта соответствует типу доступа к мультимедиа

Убедитесь, что сетевой адаптер имеет правильный разъем для кабеля, используемого в вашей сети

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

Убедитесь, что кабель соответствует требованиям сети

Убедитесь, что кабель не сломан и не поврежден

Убедитесь, что максимально допустимая длина сегмента для используемого типа кабеля не превышена, чтобы предотвратить затухание

Для коаксиальных сетей убедитесь, что сеть соответствует ограничениям, налагаемым правилом 5-4-3

Устранение неполадок при установке стека TCP/IP ■

Убедитесь, что протокол загружен правильно, проверив адрес замыкания на себя 127.0.0.1

Убедитесь, что на сетевой карте настроена правильная адресация

Устранение неполадок повторителей и концентраторов ■

Для активных концентраторов убедитесь, что на устройстве есть питание

Убедитесь, что сетевые карты компьютеров взаимодействуют с устройством, проверив индикаторы состояния на активных концентраторах

Убедитесь, что устройства установлены в соответствии со спецификациями Института инженеров по электротехнике и электронике (IEEE) для конкретной сетевой архитектуры

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

MCSE 70-293: Планирование, реализация и поддержка стратегии высокой доступности

Мартин Грасдал, . Д-р Томас В. Шиндер, технический редактор, учебное пособие MCSE (экзамен 70–293), 2003 г.

Решения для обеспечения отказоустойчивости сети

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

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

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

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

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

Во всех сетях, кроме самых маленьких, рекомендуется иметь избыточную функциональность для критически важных служб. Если вы используете AD, убедитесь, что у вас более одного контроллера домена и DNS-сервера. Если вы используете WINS, создайте вторичный WINS-сервер и сделайте его репликацию с первичным WINS-сервером. Если вы используете DHCP, создайте дополнительный DHCP-сервер в каждой подсети и настройте каждый с соответствующими областями. Соблюдение этих рекомендаций обеспечит непрерывную работу этих служб в случае сбоев.

Установка Sniffer Pro

Настройка сетевых интерфейсов и драйверов

Sniffer Pro требует сетевого адаптера, который может работать в неразборчивом режиме.

Драйверы NDIS по умолчанию не обеспечивают производительность и стабильность, которые обеспечивают расширенные драйверы NAI. Усовершенствованные драйверы NAI доступны только для определенных сетевых адаптеров в соответствии с рекомендациями NAI.

Усовершенствованные драйверы NAI предназначены для передачи физических уровней программному обеспечению Sniffer Pro.

Fast Ethernet Full Duplex Pod можно использовать для захвата полнодуплексного трафика вне сети.

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

Локальные сети

VIII.А. Карты сетевого интерфейса

Устройства подключаются к среде через сетевую карту, также называемую картой сетевого адаптера или сетевой картой. Сетевой адаптер также можно найти на материнской плате компьютера. Сетевая карта содержит электрическую схему, реализующую каналы передачи данных и стандарты физического уровня, включая порт для подключения к среде локальной сети. Каждое коммуникационное устройство (узел) в локальной сети должно иметь хотя бы одну сетевую карту. Если кадр данных адресован компьютеру, сетевая карта сохраняет копию кадра в буфере и прерывает ЦП.

Сетевая карта поддерживает определенные стандарты подключения и разъемы. Некоторые сетевые карты, называемые «комбинированными картами», содержат порты для нескольких разъемов. Фактическое подключение сетевой карты/сети зависит от архитектуры сети. Иногда сетевая карта содержит все необходимые схемы интерфейса и подключается непосредственно к сети (например, 10/100BaseT); а для других архитектур (например, 10Base5) требуется ответвительный кабель от сетевой карты компьютера к другому электрическому компоненту, приемопередатчику, который подключается к сети.

Сетевые операционные системы взаимодействуют с сетевым адаптером через программное обеспечение драйвера сетевого адаптера, которое называется Спецификация сетевого интерфейса передачи данных (NDIS, разработанная Microsoft и 3COM) или Open Data-Link Interface (ODI, разработанный Novell и Apple). Сегодня большинство сетевых адаптеров поддерживают как NDIS, так и ODI.

Введение в сетевое взаимодействие

Как описано ранее, сетевая карта используется для подключения компьютера и носителя к сети. Для сетей 802.5 Token Ring доступны сетевые карты двух типов. Первая — это карта на 4 МБ/с, а другая поддерживает как 4 МБ/с, так и 16 МБ/с. Многие люди думают, что Token Ring сегодня не используется широко, поскольку Ethernet (IEEE 802.3) установлен в большинстве офисных локальных сетей, но в больницах и других медицинских учреждениях 802.5 (Token Ring) предпочтительнее, когда большие изображения (такие как рентгеновские снимки) ) должны быть перемещены из диагностической сети в сеть врачей.

Руководство по безопасности для ICA и сетевых подключений

Многосетевые серверы

Одно из соображений при выборе сетевого адаптера – сделать машину многосетевой или нет. Компьютер называется многосетевым, если он содержит два или более сетевых адаптера, каждый из которых подключен к сегменту сети. Это могут быть отдельные сегменты или один и тот же сегмент в случае множественной адресации машины из-за проблем с избыточностью или скоростью. Многосетевые машины могут выступать в качестве маршрутизаторов, если фактический маршрутизатор недоступен, но это будет потреблять центральный процессор (ЦП) для обеспечения службы маршрутизации. Множественная адресация сервера XenApp может быть реализована по нескольким причинам, в том числе:

Серверы, требующие избыточного доступа

Серверы, которым требуется внешний доступ к управлению (только удаленное администрирование)

Серверы, для которых требуется отдельная резервная сеть

Настройка частной внутренней сети

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

Узкие места в сети могут возникать в любое время, когда приложение, выполняемое XenApp Server, на самом деле не существует на самом сервере. Например, Microsoft Word обычно устанавливается локально на сервере XenApp, но данные обычно находятся где-то еще в сети. Это еще более справедливо для клиент-серверных приложений, таких как PeopleSoft или SAP. Несмотря на то, что пропускная способность, используемая сеансами, размещенными на сервере, относительно невелика, требования к сети для этих сеансов будут значительно выше. Есть несколько способов решить эту проблему:

Объединенные карты для увеличения доступной пропускной способности

Совместное размещение приложения и данных на Presentation Server

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

Объединение сетевых карт для резервирования почти всегда является хорошей идеей. Путем объединения нескольких сетевых карт их «физическая» пропускная способность может быть логически суммирована, чтобы обеспечить дополнительную «трубу». Большинство сетевых карт сегодня поддерживают объединение (в различных формах), а в некоторых случаях возможность объединения разнородных сетевых карт (например, карты 10/100 Мбит/с с картой 1 Гбит/с), если возникнет такая необходимость. Мы рекомендуем вам всегда пытаться объединять одинаковые карты, чтобы уменьшить сложности и проблемы с поддержкой, которые могут возникнуть в противном случае.

Размещение приложения и данных на сервере XenApp, безусловно, уменьшит объем трафика, необходимого для обслуживания запроса пользователя, тем самым устранив сеть как потенциальное узкое место. Однако это действие означает, что мы косвенно создали единую точку отказа для доступа к этому приложению. Если данные расположены на одном сервере XenApp, мы, скорее всего, не сможем «балансировать нагрузку» приложения по всей ферме; поэтому этот вариант не является жизнеспособным решением, за исключением определенных обстоятельств.

Последний вариант множественной адресации нашего сервера XenApp Server предоставляет множество возможностей для повышения производительности и более ограниченного способа повышения отказоустойчивости. Концепция многосетевых серверов всех видов существует в сетевом мире почти столько же, сколько и сама сеть! Многосетевые серверы представили решения, обеспечивающие отказоустойчивость, увеличение пропускной способности и, в некоторых случаях, «частные» сети для служб резервного копирования и аутентификации. Однако исторически предки XenApp имели проблемы с несколькими «путями» к серверу. В прошлом сервер Citrix мог непреднамеренно направить пользовательский сеанс на «неправильную» карту в сценарии многосетевого сервера, тем самым создавая отказ в обслуживании. Эта проблема давно исправлена, поэтому сегодня мы можем обсудить преимущества многосетевого доступа Серверы XenApp для повышения качества обслуживания (QoS).

Благодаря множественной адресации серверов XenApp вы можете отделить наш трафик сеансов от нашего трафика данных (а также, возможно, трафика проверки подлинности и резервного копирования). Размещение двух «ветвей» или «маршрутов» в сети также может обеспечить некоторую степень отказоустойчивости для доступа к конкретному серверу XenApp (хотя обычно это не так надежно или автоматически, как объединение). Ситуация возникает из-за характера приложения. и доступ к сети. Рассмотрим следующий сценарий. Предположим, у вас есть один XenApp Server с одной сетевой картой для всех пользовательских сеансов и доступа к сетевым данным. Сервер обслуживает 50 пользовательских сессий. Все приложения работают хорошо, за исключением вашей внутренней системы базы данных для отслеживания заказов. Когда приложение, работающее на сервере XenApp (или клиентской рабочей станции), обращается к базе данных для выполнения запросов, между сервером и базой данных создается большой объем трафика до тех пор, пока запрос не будет выполнен. Это приводит к периодам замедления других пользовательских сеансов на сервере (даже если производительность ЦП, памяти и диска может быть в норме). Почему? Ответ заключается в том, что все пользовательские сеансы и доступ к данным приложения конкурируют за одну и ту же сетевую ссылку. Рассмотрите возможность разделения пользовательских сеансов и доступа к базе данных на две отдельные сетевые карты. На рис. 8.4 показана концепция изоляции сети «данных» от сети «сеанс».

Читайте также: