Auswählen einer Netzwerkkarte
In diesem Thema lernen Sie einige der Features von Netzwerkadaptern kennen, die sich auf Ihre Kaufoptionen auswirken können.
Netzwerkintensive Anwendungen erfordern hochleistungsfähige Netzwerkadapter. In diesem Abschnitt werden einige Überlegungen zur Auswahl von Netzwerkadaptern sowie die Konfiguration verschiedener Netzwerkadaptereinstellungen erläutert, damit Sie die beste Netzwerkleistung erzielen können.
Tipp
Sie können Netzwerkadaptereinstellungen mithilfe von Windows PowerShell konfigurieren. Weitere Informationen finden Sie unter NetAdapter.
Auslagerungsfunktionen
Das Auslagern von Aufgaben vom Zentralprozessor (Central Processing Unit, CPU) auf den Netzwerkadapter kann die CPU-Auslastung auf dem Server verringern. Dadurch wird die Gesamtleistung des Systems verbessert.
Der Netzwerkstapel in Microsoft-Produkten kann eine oder mehrere Aufgaben auf einen Netzwerkadapter auslagern, wenn Sie einen Netzwerkadapter auswählen, der über die entsprechenden Auslagerungsfunktionen verfügt. Die folgende Tabelle bietet einen kurzen Überblick über die verschiedenen Auslagerungsfunktionen, die unter Windows Server 2016 verfügbar sind:
Auslagerungstyp | BESCHREIBUNG |
---|---|
Prüfsummenberechnung für TCP | Der Netzwerkstapel kann die Berechnung und Validierung von TCP-Prüfsummen (Transmission Control-Protokoll) für Sende- und Empfangscodepfade auslagern. Er kann zudem die Berechnung und Validierung von IPv4- und IPv6-Prüfsummen für Sende- und Empfangscodepfade auslagern. |
Prüfsummenberechnung für UDP | Der Netzwerkstapel kann die Berechnung und Validierung von UDP-Prüfsummen (User Datagram-Protokoll) für Sende- und Empfangscodepfade auslagern. |
Prüfsummenberechnung für IPv4 | Der Netzwerkstapel kann die Berechnung und Validierung von IPv4-Prüfsummen für Sende- und Empfangscodepfade auslagern. |
Prüfsummenberechnung für IPv6 | Der Netzwerkstapel kann die Berechnung und Validierung von IPv6-Prüfsummen für Sende- und Empfangscodepfade auslagern. |
Segmentierung großer TCP-Pakete | Die TCP/IP-Transportschicht unterstützt LSOv2 (Large Send Offload, große Übertragungsabladung). Mit LSOv2 kann die TCP/IP-Transportschicht die Segmentierung großer TCP-Pakete auf den Netzwerkadapter auslagern. |
Empfangsseitige Skalierung (RSS) | RSS ist eine Netzwerktreibertechnologie, die die effiziente Verteilung der Netzwerkeingangsverarbeitung über mehrere CPUs in Mehrprozessorsystemen ermöglicht. Weiter unten in diesem Artikel erhalten Sie weitere Details zu RSS. |
Receive Segment Coalescing (RSC) | RSC bietet die Möglichkeit, Pakete zu gruppieren, um die für den Host erforderliche Verarbeitung von Headern zu minimieren. Maximal 64 KB empfangene Nutzlast können zur Verarbeitung in einem einzelnen größeren Paket zusammengefasst werden. Weiter unten in diesem Artikel erhalten Sie weitere Details zu RSC. |
Receive Side Scaling
Windows Server 2016, Windows Server 2012, Windows Server 2012 R2, Windows Server 2008 R2 und Windows Server 2008 unterstützen RSS (Receive Side Scaling, empfangsseitige Skalierung).
Einige Server sind mit mehreren logischen Prozessoren konfiguriert, die Hardwareressourcen (z. B. einen physischen Kern) gemeinsam nutzen und als SMT-Peers (Simultaneous Multi-Threading, gleichzeitiges Multithreading) behandelt werden. Hyper-Threading-Technik von Intel ist ein Beispiel dafür. RSS leitet die Netzwerkverarbeitung an bis zu einen logischen Prozessor pro Kern weiter. Auf einem Server mit Intel Hyper-Threading, vier Kernen und acht logischen Prozessoren verwendet RSS beispielsweise nicht mehr als vier logische Prozessoren für die Netzwerkverarbeitung.
RSS verteilt eingehende Netzwerk-E/A-Pakete auf logische Prozessoren, sodass Pakete, die zur gleichen TCP-Verbindung gehören, auf demselben logischen Prozessor verarbeitet werden. Dadurch wird die Reihenfolge beibehalten.
RSS sorgt auch für einen Lastenausgleich des UDP-Unicastdatenverkehrs und -Multicastdatenverkehrs und leitet zugehörige Flows (die durch Hashing der Quell- und Zieladressen bestimmt werden) an denselben logischen Prozessor weiter, wobei die Reihenfolge der zugehörigen Eingänge beibehalten wird. Dies trägt zur Verbesserung der Skalierbarkeit und Leistung bei empfangsintensiven Szenarien für Server bei, die über weniger Netzwerkadapter als geeignete logische Prozessoren verfügen.
Konfigurieren von RSS
Unter Windows Server 2016 können Sie RSS mithilfe von Windows PowerShell-Cmdlets und RSS-Profilen konfigurieren.
Sie können RSS-Profile mithilfe des Parameters –Profile des Windows PowerShell-Cmdlets Set-NetAdapterRss definieren.
Windows PowerShell-Befehle für die RSS-Konfiguration
Mit den folgenden Cmdlets können Sie RSS-Parameter pro Netzwerkadapter anzeigen und ändern.
Hinweis
Klicken Sie unten auf die entsprechenden Links, um eine detaillierte Befehlsreferenz für jedes Cmdlet, einschließlich Syntax und Parametern, anzuzeigen. Darüber hinaus können Sie den Cmdlet-Namen an der Windows PowerShell-Eingabeaufforderung an Get-Help übergeben, um Details zu den einzelnen Befehlen zu erhalten.
Disable-NetAdapterRss: Mit diesem Befehl wird RSS für den von Ihnen angegebenen Netzwerkadapter deaktiviert.
Enable-NetAdapterRss: Mit diesem Befehl wird RSS für den von Ihnen angegebenen Netzwerkadapter aktiviert.
Get-NetAdapterRss: Mit diesem Befehl werden RSS-Eigenschaften für den von Ihnen angegebenen Netzwerkadapter abgerufen.
Set-NetAdapterRss: Mit diesem Befehl werden die RSS-Eigenschaften für den von Ihnen angegebenen Netzwerkadapter festgelegt.
RSS-Profile
Sie können den Parameter –Profile des Cmdlets „Set-NetAdapterRss“ verwenden, um anzugeben, welche logischen Prozessoren welchem Netzwerkadapter zugeordnet sind. Mögliche Werte für diesen Parameter:
Closest: Logische Prozessornummern, die sich in der Nähe des RSS-Basisprozessors des Netzwerkadapters bewegen, werden bevorzugt. Mit diesem Profil kann das Betriebssystem logische Prozessoren basierend auf der Auslastung dynamisch ausgleichen.
ClosestStatic: Logische Prozessornummern, die sich in der Nähe des RSS-Basisprozessors des Netzwerkadapters bewegen, werden bevorzugt. Mit diesem Profil gleicht das Betriebssystem logische Prozessoren nicht dynamisch basierend auf der Auslastung aus.
NUMA: Logische Prozessornummern werden in der Regel auf verschiedenen NUMA-Knoten ausgewählt, um die Last zu verteilen. Mit diesem Profil kann das Betriebssystem logische Prozessoren basierend auf der Auslastung dynamisch ausgleichen.
NUMAStatic: Dies ist das Standardprofil. Logische Prozessornummern werden in der Regel auf verschiedenen NUMA-Knoten ausgewählt, um die Last zu verteilen. Mit diesem Profil gleicht das Betriebssystem logische Prozessoren nicht dynamisch basierend auf der Auslastung aus.
Conservative: RSS verwendet so wenige Prozessoren wie möglich, um die Last aufzufangen. Mit dieser Option kann die Anzahl der Unterbrechungen verringert werden.
Abhängig vom Szenario und den Workloadmerkmalen können Sie auch andere Parameter des Windows PowerShell-Cmdlets Set-NetAdapterRss verwenden, um Folgendes anzugeben:
- Anzahl logischer Prozessoren, die für RSS verwendet werden können (pro Netzwerkadapter)
- Startoffset für den Bereich logischer Prozessoren
- Knoten, von dem der Netzwerkadapter Arbeitsspeicher zuweist
Im Anschluss finden Sie weitere Parameter für Set-NetAdapterRss, die Sie zum Konfigurieren von RSS verwenden können:
Hinweis
In der Beispielsyntax für jeden unten angegebenen Parameter wird der Netzwerkadaptername Ethernet als Beispielwert für den Parameter –Name des Befehls Set-NetAdapterRss verwendet. Stellen Sie beim Ausführen des Cmdlets sicher, dass der von Ihnen verwendete Netzwerkadaptername für Ihre Umgebung geeignet ist.
* MaxProcessors: Legt die maximale Anzahl der zu verwendenden RSS-Prozessoren fest. Dadurch wird sichergestellt, dass der Anwendungsdatenverkehr an eine maximale Anzahl von Prozessoren auf einer bestimmten Schnittstelle gebunden ist. Beispielsyntax:
Set-NetAdapterRss –Name "Ethernet" –MaxProcessors <value>
* BaseProcessorGroup: Legt die Basisprozessorgruppe eines NUMA-Knotens fest. Dies wirkt sich auf das Prozessorarray aus, das von RSS verwendet wird. Beispielsyntax:
Set-NetAdapterRss –Name "Ethernet" –BaseProcessorGroup <value>
* MaxProcessorGroup: Legt die maximale Prozessorgruppe eines NUMA-Knotens fest. Dies wirkt sich auf das Prozessorarray aus, das von RSS verwendet wird. Wenn Sie diesen Parameter festlegen, wird eine maximale Prozessorgruppe eingeschränkt, sodass der Lastenausgleich innerhalb einer k-Gruppe ausgerichtet wird. Beispielsyntax:
Set-NetAdapterRss –Name "Ethernet" –MaxProcessorGroup <value>
* BaseProcessorNumber: Legt die Anzahl von Basisprozessoren eines NUMA-Knotens fest. Dies wirkt sich auf das Prozessorarray aus, das von RSS verwendet wird. Dies ermöglicht die Partitionierung von Prozessoren über Netzwerkadapter hinweg. Dies ist der erste logische Prozessor im Bereich der RSS-Prozessoren, der jedem Adapter zugewiesen ist. Beispielsyntax:
Set-NetAdapterRss –Name "Ethernet" –BaseProcessorNumber <Byte Value>
* NumaNode: Der NUMA-Knoten, von dem jeder Netzwerkadapter Arbeitsspeicher zuweisen kann. Dies kann innerhalb einer k-Gruppe oder aus verschiedenen k-Gruppen erfolgen. Beispielsyntax:
Set-NetAdapterRss –Name "Ethernet" –NumaNodeID <value>
* NumberofReceiveQueues: Wenn die logischen Prozessoren anscheinend für den eingehenden Datenverkehr nicht ausreichend ausgelastet sind (wie etwa im Task-Manager angezeigt), können Sie versuchen, die Anzahl der RSS-Warteschlangen vom Standardwert 2 auf das Maximum zu erhöhen, das durch Ihren Netzwerkadapter unterstützt wird. Ihr Netzwerkadapter verfügt möglicherweise über Optionen zum Ändern der Anzahl der RSS-Warteschlangen als Bestandteil des Treibers. Beispielsyntax:
Set-NetAdapterRss –Name "Ethernet" –NumberOfReceiveQueues <value>
Wenn Sie weitere Informationen benötigen, klicken Sie auf den Link, um das Word-Dokument Skalierbare Netzwerke: Beseitigung des Engpasses bei der Empfangsverarbeitung – Einführung von RSS herunterzuladen.
Grundlegendes zur RSS-Leistung
Die Optimierung von RSS erfordert Kenntnisse über die Konfiguration und die Logik des Lastenausgleichs. Um zu überprüfen, ob die RSS-Einstellungen wirksam wurden, können Sie die Ausgabe überprüfen, wenn Sie das Windows PowerShell-Cmdlet Get-NetAdapterRss ausführen. Im Anschluss sehen Sie eine Beispielausgabe dieses Cmdlets:
PS C:\Users\Administrator> get-netadapterrss
Name : testnic 2
InterfaceDescription : Broadcom BCM5708C NetXtreme II GigE (NDIS VBD Client) #66
Enabled : True
NumberOfReceiveQueues : 2
Profile : NUMAStatic
BaseProcessor: [Group:Number] : 0:0
MaxProcessor: [Group:Number] : 0:15
MaxProcessors : 8
IndirectionTable: [Group:Number]:
0:0 0:4 0:0 0:4 0:0 0:4 0:0 0:4
…
(# indirection table entries are a power of 2 and based on # of processors)
…
0:0 0:4 0:0 0:4 0:0 0:4 0:0 0:4
Neben den festgelegten Echoparametern ist der wichtigste Aspekt der Ausgabe die Ausgabe der Indirektionstabelle. Die Indirektionstabelle zeigt die Hashtabellen-Buckets an, die zum Verteilen von eingehendem Datenverkehr verwendet werden. In diesem Beispiel bezeichnet die n:c-Notation das Numa-Indexpaar „K-Group:CPU“, das zum Weiterleiten des eingehenden Datenverkehrs verwendet wird. Wir sehen genau 2 eindeutige Einträge (0:0 und 0:4), die jeweils „k-group 0/cpu0“ und „k-group 0/cpu 4“ darstellen.
Es gibt nur eine k-Gruppe für dieses System (k-group 0) und einen Indirektionstabelleneintrag für n (wobei n <= 128 ist). Da die Anzahl der Empfangswarteschlangen auf 2 festgelegt ist, werden nur 2 Prozessoren (0:0, 0:4) ausgewählt, obwohl die maximale Prozessoranzahl auf 8 festgelegt ist. Tatsächlich führt die Indirektionstabelle Hashing für den eingehenden Datenverkehr aus, sodass nur 2 von den 8 verfügbaren CPUs verwendet werden.
Um die CPUs vollständig zu nutzen, muss die Anzahl der RSS-Empfangswarteschlangen gleich oder größer als die maximale Anzahl von Prozessoren sein. Im vorherigen Beispiel muss die Empfangswarteschlange auf 8 oder einen höheren Wert festgelegt werden.
NIC-Teamvorgang und RSS
RSS kann für einen Netzwerkadapter aktiviert werden, der mithilfe des NIC-Teamvorgangs im Team mit einem anderen Netzwerkadapter verwendet werden kann. In diesem Szenario kann nur der zugrunde liegende physische Netzwerkadapter für die Verwendung von RSS konfiguriert werden. Benutzer*innen können keine RSS-Cmdlets für den Netzwerkadapter im Team festlegen.
Receive Segment Coalescing (RSC)
RSC (Receive Segment Coalescing, Zusammenfügen empfangener Segmente) unterstützt die Leistung, indem die Anzahl der IP-Header reduziert wird, die für eine bestimmte Menge empfangener Daten verarbeitet werden. Diese Technologie sollte verwendet werden, um die Leistung empfangener Daten durch Gruppieren (oder Zusammenfügen) kleinerer Pakete in größeren Einheiten zu skalieren.
Dieser Ansatz kann sich auf die Wartezeit auswirken, wobei die Vorteile vor allem in der Steigerung des Durchsatzes liegen. RSC wird empfohlen, um den Durchsatz für eingehende umfangreiche Workloads zu erhöhen. Erwägen Sie die Bereitstellung von Netzwerkadaptern, die RSC unterstützen.
Stellen Sie bei diesen Netzwerkadaptern sicher, dass RSC aktiviert ist (Standardeinstellung), es sei denn, Sie verfügen über bestimmte Workloads (etwa Netzwerke mit geringer Latenz und niedrigem Durchsatz), die von der Deaktivierung von RSC profitieren.
Grundlegendes zur RSC-Diagnose
Sie können mithilfe der Windows PowerShell-Cmdlets Get-NetAdapterRsc und Get-NetAdapterStatistics eine Diagnose für RSC ausführen.
Im Anschluss sehen Sie eine Beispielausgabe für die Ausführung des Cmdlets „Get-NetAdapterRsc“:
PS C:\Users\Administrator> Get-NetAdapterRsc
Name IPv4Enabled IPv6Enabled IPv4Operational IPv6Operational IPv4FailureReason IPv6Failure
Reason
---- ----------- ----------- --------------- --------------- ----------------- ------------
Ethernet True False True False NoFailure NicProperties
Das Cmdlet Get zeigt, ob RSC in der Schnittstelle aktiviert ist und ob TCP RSC in den Betriebszustand versetzt. Die Fehlerursache enthält Details zum Fehler beim Aktivieren von RSC für diese Schnittstelle.
Im vorherigen Szenario wird RSC für IPv4 in der Schnittstelle unterstützt und ist betriebsbereit. Um Diagnosefehler zu verstehen, können Sie die zusammengefügten Bytes oder verursachten Ausnahmen anzeigen. Dadurch erhalten Sie einen Hinweis auf die Probleme beim Zusammenfügen.
Im Anschluss sehen Sie eine Beispielausgabe für die Ausführung des Cmdlets „Get-NetAdapterStatistics“:
PS C:\Users\Administrator> $x = Get-NetAdapterStatistics "myAdapter"
PS C:\Users\Administrator> $x.rscstatistics
CoalescedBytes : 0
CoalescedPackets : 0
CoalescingEvents : 0
CoalescingExceptions : 0
RSC und Virtualisierung
RSC wird nur auf dem physischen Host unterstützt, wenn der Hostnetzwerkadapter nicht an den virtuellen Hyper-V-Switch gebunden ist. RSC wird vom Betriebssystem deaktiviert, wenn der Host an den virtuellen Hyper-V-Switch gebunden ist. Darüber hinaus profitieren virtuelle Computer nicht von RSC, da virtuelle Netzwerkadapter RSC nicht unterstützen.
RSC kann für einen virtuellen Computer aktiviert werden, wenn SR-IOV (Single Root Input/Output Virtualization, E/A-Virtualisierung mit Einzelstamm) aktiviert ist. In diesem Fall unterstützen virtuelle Funktionen die RSC-Funktion. Daher profitieren virtuelle Computer auch von RSC.
Netzwerkadapterressourcen
Einige Netzwerkadapter verwalten aktiv ihre Ressourcen, um eine optimale Leistung zu erzielen. Bei mehreren Netzwerkadaptern können Sie Ressourcen über die Registerkarte Erweitertes Netzwerk für den Adapter manuell konfigurieren. Für solche Adapter können Sie die Werte verschiedener Parameter festlegen, einschließlich der Anzahl von Puffern zum Empfangen und Senden.
Das Konfigurieren von Netzwerkadapterressourcen wird mithilfe der folgenden Windows PowerShell-Cmdlets vereinfacht:
Weitere Informationen finden Sie unter NetAdapter.
Links zu allen Themen in diesem Leitfaden finden Sie unter Leistungsoptimierung für das Netzwerksubsystem.