Sdílet prostřednictvím


Úvod do škálování na straně příjmu

Škálování na straně příjmu (RSS) je technologie síťového ovladače, která umožňuje efektivní distribuci zpracování příjmu sítě napříč několika procesory v multiprocesorových systémech.

Poznámka:

Vzhledem k tomu, že hyperthreadingové CPU na stejném jádru procesoru sdílejí stejný prováděcí engine, účinek na výkon není stejný jako u vícejádrových procesorů. Z tohoto důvodu RSS nepoužívá procesory hyper-threaded.

Aby bylo zpracování přijatých dat efektivní, přijímací přerušovací služba miniportového ovladače naplánuje odložené volání procedury (DPC). Bez RSS typický DPC označuje všechna přijatá data v rámci volání DPC. Proto se veškeré zpracování příjmu přidružené k přerušení spustí na procesoru, kde dochází k přerušení příjmu. Přehled zpracování příjmu, který není rss, naleznete v tématu Zpracování příjmu bez rss.

RSS umožňuje síťovému a miniportovému ovladači naplánovat zpracování DPC na jiných procesorech. Návrh RSS zajišťuje, že zpracování přidružené k danému připojení zůstane na přiřazené procesoru. Síťová karta implementuje funkci hash a výsledná hodnota hash pomáhá vybrat procesor.

Následující obrázek znázorňuje mechanismus RSS pro určení procesoru.

Diagram znázorňující proces mechanismu RSS při určování procesoru

Síťová karta používá funkci hash k výpočtu hodnoty hash nad definovanou oblastí (typ hash) v přijatých síťových datech. Definovaná oblast může být nesouvisená.

K indexování nepřímé tabulky se používá několik nejméně významných bitů (LSB) hodnoty hash. Hodnoty v tabulce nepřímých dat se používají k přiřazení přijatých dat k procesoru.

Podrobnější informace o zadávání nepřímých tabulek, typů hash a hashovacích funkcí naleznete v tématu Konfigurace RSS.

Díky podpoře přerušení zprávy (MSI) může síťová karta také přerušit přidružený procesor. Další informace o podpoře NDIS pro rozhraní MSI naleznete v tématu NDIS MSI-X.

Podpora hardwaru pro RSS

Následující obrázek znázorňuje úrovně hardwarové podpory rss.

Diagram znázorňující různé úrovně hardwarové podpory rss

Existují tři možné úrovně hardwarové podpory rss:

Síťová karta vždy předává 32bitovou hodnotu hash.

Jak RSS zlepšuje výkon systému

Rss může zlepšit výkon síťového systému snížením:

  • Zpoždění zpracování prostřednictvím distribuce zpracování příjmu z síťové karty napříč několika procesory

    Distribuce zpracování příjmu pomáhá zajistit, aby žádný procesor nebyl silně zatížen, zatímco jiný procesor je nečinný.

  • Režijní náklady spinlocku tím, že zvýšíme pravděpodobnost, že softwarové algoritmy sdílející data se spouštějí na stejném CPU.

    Režie spinlocku nastane například, když funkce spuštěná na CPU0 má spinlock na data, ke kterým musí přistupovat funkce běžící na CPU1. Procesor 1 zatáčí (čeká), dokud procesor0 zámek nepustí.

  • Opětovné načtení mezipamětí a dalších prostředků zvýšením pravděpodobnosti, že softwarové algoritmy sdílející data se spouštějí na stejném procesoru.

    K takovému opětovnému načítání dojde například tehdy, když funkce, která se spouští a přistupuje ke sdíleným datům na CPU0, běží v dalším přerušení na CPU1.

K dosažení těchto vylepšení výkonu v zabezpečeném prostředí poskytuje RSS následující mechanismy:

  • Distribuované zpracování

    RSS distribuuje zpracování příjmových indikací od daného síťového adaptéru v DPC do několika procesorů.

  • Zpracování v pořadí

    RSS zachovává pořadí doručení přijatých datových paketů. U každého síťového připojení procesy RSS obdrží indikace souvisejícího procesoru. Další informace o zpracování přijímání dat RSS naleznete v sekci Indikace přijímání dat RSS.

  • Dynamické vyrovnávání zatížení

    RSS poskytuje způsob, jak vyrovnává zatížení zpracování sítě mezi procesory, protože zatížení hostitelského systému se liší. Pro vyvážení zatížení mohou nadřazené ovladače změnit indirekční tabulku. Další informace o zadávání nepřímých tabulek, typů hash a hashovacích funkcí naleznete v tématu Konfigurace RSS.

  • Škálování na straně odeslání

    RSS umožňuje zásobníkům ovladačů zpracovávat data na straně odesílání a příjmu pro dané připojení na stejném procesoru. Nadřazený ovladač (například TCP) obvykle odešle část datového bloku a před odesláním zbytku dat počká na potvrzení. Potvrzení pak aktivuje následné odeslání požadavků. Tabulka nepřímých přenosů RSS identifikuje konkrétní procesor pro zpracování přijímaných dat. Ve výchozím nastavení se proces odesílání spouští na stejném procesoru, pokud je spuštěn potvrzením přijetí. Ovladač může také určit procesor (například pokud se používá časovač).

  • Zabezpečená hodnota hash

    RSS obsahuje podpis, který poskytuje přidané zabezpečení. Tento podpis chrání systém před škodlivými vzdálenými hostiteli, kteří by se mohli pokusit systém vynutit do nevyváženého stavu.

  • podpora MSI-X

    RSS, s podporou MSI-X, spouští rutinu přerušení služby (ISR) na stejném procesoru, který později spustí DPC. Tím se snižuje režie otáčkového zámku a opětovné načítání mezipamětí.