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


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

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

Заметка

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • Задержки в обработке устраняются за счет распределения обработки входящих данных из сетевого адаптера между несколькими процессорами.

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

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

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

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

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

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

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

    RSS распределяет обработку сигналов приема от заданного сетевого адаптера в DPC на несколько центральных процессоров (ЦП).

  • Обработка в порядке поступления

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

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

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

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

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

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

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

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

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