Поделиться через


Общие сведения о масштабировании на стороне приема

Масштабирование на стороне приема (RSS) — это технология сетевого драйвера, которая обеспечивает эффективное распределение обработки приема по сети между несколькими ЦП в многопроцессорных системах.

Примечание

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

Для эффективной обработки полученных данных функция получения прерываний драйвера мини-порта планирует отложенный вызов процедуры (DPC). Без RSS типичная DPC указывает все полученные данные в вызове DPC. Таким образом, вся обработка получения, связанная с прерыванием, выполняется на ЦП, где происходит прерывание приема. Общие сведения об обработке получения, отличной от RSS, см. в разделе Обработка получения не RSS.

RSS позволяет сетевому адаптеру и драйверу мини-порта планировать получение DPC на других процессорах. Конструкция RSS гарантирует, что обработка, связанная с данным соединением, будет оставаться на назначенном ЦП. Сетевой адаптер реализует хэш-функцию, а полученное хэш-значение помогает выбрать ЦП.

На следующем рисунке показан механизм RSS для определения ЦП.

Схема, показывающая процесс механизма RSS при определении ЦП.

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

Для индексирования таблицы косвенного обращения используется несколько наименее значимых битов (LSB) хэш-значения. Значения в таблице косвенного обращения используются для назначения полученных данных ЦП.

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

При поддержке прерываний с сигналом о сообщениях (MSI) сетевой адаптер также может прервать работу связанного ЦП. Дополнительные сведения о поддержке NDIS для MSIs см. в разделе NDIS MSI-X.

Поддержка оборудования для RSS

На следующем рисунке показаны уровни поддержки оборудования для RSS.

Схема, показывающая различные уровни поддержки оборудования для RSS.

Существует три возможных уровня поддержки оборудования для RSS:

Сетевой адаптер всегда передает 32-разрядное хэш-значение.

Как RSS повышает производительность системы

RSS может повысить производительность сетевой системы за счет снижения:

  • Задержки обработки путем распределения обработки получения от сетевого адаптера между несколькими ЦП.

    Распределение обработки получения помогает гарантировать, что ЦП не загружается интенсивно, пока другой ЦП неактивен.

  • Накладные расходы на блокировку, увеличивая вероятность того, что программные алгоритмы, которые совместно используют данные, выполняются на одном ЦП.

    Накладные расходы на спин-блокировку возникают, например, когда функция, выполняющаяся на ЦП0, имеет блокировку спина на данных, к которым должна получить доступ функция, работающая на ЦП1. ЦП1 вращается (ожидает), пока ЦП0 не спустит блокировку.

  • Перезагрузите кэши и другие ресурсы, увеличив вероятность того, что программные алгоритмы, которые совместно используют данные, выполняются на одном ЦП.

    Такая перезагрузка происходит, например, когда функция, которая выполняет и обращается к общим данным на cpu0, выполняется на ЦП1 в последующем прерывании.

Для достижения этих улучшений производительности в безопасной среде RSS предоставляет следующие механизмы:

  • Распределенная обработка

    RSS распределяет обработку показаний получения от заданного сетевого адаптера в DPC на несколько ЦП.

  • Обработка в порядке

    RSS сохраняет порядок доставки полученных пакетов данных. Для каждого сетевого подключения RSS-процессы получают указания на связанном ЦП. Дополнительные сведения об обработке получения RSS см. в разделе Указание данных получения RSS.

  • Динамическая балансировка нагрузки

    RSS предоставляет средства для перераспределения нагрузки на обработку сети между ЦП по мере того, как нагрузка на систему узла меняется. Чтобы сбалансировать нагрузку, избыточные драйверы могут изменить таблицу косвенного обращения. Дополнительные сведения об указании таблиц косвенного обращения, хэш-типов и функций хэширования см. в разделе Конфигурация RSS.

  • Масштабирование на стороне отправки

    RSS позволяет стекам драйверов обрабатывать данные на стороне отправки и получения для заданного подключения на том же ЦП. Как правило, избыточный драйвер (например, TCP) отправляет часть блока данных и ожидает подтверждения перед отправкой остатка данных. Затем подтверждение активирует последующие запросы на отправку. Таблица косвенного обращения RSS определяет конкретный ЦП для обработки данных приема. По умолчанию обработка отправки выполняется на том же ЦП, если она активируется подтверждением получения. Драйвер также может указать ЦП (например, если используется таймер).

  • Безопасный хэш

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

  • Поддержка MSI-X

    RSS с поддержкой MSI-X запускает подпрограмму службы прерываний (ISR) на том же ЦП, который позже выполняет DPC. Это снижает затраты на спин-блокировку и перезагрузку кэшей.