Machen Sie sich mit der Verwendung von TCP-Segmentierungs-Offload (TSO) in VMkernel-Netzwerkadaptern und virtuellen Maschinen vertraut, um die Netzwerkleistung in Arbeitslasten mit hohen Latenzanforderungen zu steigern.
TSO auf dem Übertragungspfad von physischen Netzwerkadaptern, VMkernel-Netzwerkadaptern und Netzwerkadaptern virtueller Maschinen steigert die Leistung von ESXi-Hosts durch das Reduzieren des Overheads der CPU für TCP/IP-Netzwerkvorgänge. Wenn TSO aktiviert ist, unterteilt der Netzwerkadapter anstelle der CPU größere Datenblöcke in TCP-Segmente. Der VMkernel und das Gastbetriebssystem können mehrere CPU-Zyklen zum Ausführen von Anwendungen verwenden.
Um die höhere Leistung, die TSO bietet, zu nutzen, aktivieren Sie TSO auf dem Datenpfad auf einem ESXi-Host, einschließlich physischer Netzwerkadapter, VMkernel und Gastbetriebssystem. Standardmäßig ist TSO im VMkernel des ESXi-Hosts und in den VMXNET 2- und VMXNET 3-VM-Adaptern aktiviert.
Informationen zur Position der TCP-Paketsegmentierung im Datenpfad finden Sie im VMware Knowledgebase-Artikel Understanding TCP Segmentation Offload (TSO) and Large Receive Offload (LRO) in a VMware environment (Funktionsweise von TCP Segmentation Offload (TSO) und Large Receive Offload (LRO) in einer VMware-Umgebung).
Verwaltung von Software-TSO im VMkernel
Wenn ein physischer Netzwerkadapter Probleme mit TSO hat, können Sie vorübergehend die Softwaresimulation von TSO im VMkernel aktivieren, bis die Probleme behoben sind.
Prozedur
- ♦ Führen Sie die Konsolenbefehle esxcli network nic software set aus, um die Softwaresimulation von TSO im VMkernel zu aktivieren oder zu deaktivieren.
- Aktivieren Sie die Softwaresimulation von TSO im VMkernel.
esxcli network nic software set --ipv4tso=1 -n vmnicX esxcli network nic software set --ipv6tso=1 -n vmnicX
- Deaktivieren Sie die Softwaresimulation von TSO im VMkernel.
esxcli network nic software set --ipv4tso=0 -n vmnicX esxcli network nic software set --ipv6tso=0 -n vmnicX
Wobei X in vmnicX die Nummer der Netzwerkkartenports im Host darstellt.
Die Konfigurationsänderung bleibt auch nach dem Neustart des Hosts erhalten.
- Aktivieren Sie die Softwaresimulation von TSO im VMkernel.
Vorgehensweise zum Ermitteln, ob TSO auf den physischen Netzwerkadaptern eines ESXi-Hosts unterstützt wird
Untersuchen Sie, ob beim physischen Netzwerkadapter ein Offload der TCP/IP-Paketsegmentierung stattfindet, wenn Sie die Netzwerkleistung eines Hosts mit latenzempfindlichen Workloads schätzen. Wenn ein physischer Netzwerkadapter TSO unterstützt, dann ist TSO standardmäßig aktiviert.
Prozedur
- ♦ Führen Sie den folgenden Konsolenbefehl aus, um zu ermitteln, ob TSO auf den physischen Netzwerkadaptern eines Hosts aktiviert ist.
esxcli network nic tso get
Verwaltung von TSO auf einem ESXi-Host
Aktivieren Sie TCP Segmentation Offload (TSO) im Übertragungspfad, um der Netzwerkkarte die Unterteilung größerer Datenblöcke in TCP-Segmente zu ermöglichen. Deaktivieren Sie TSO, um die TCP-Segmentierung von der CPU durchführen zu lassen.
Standardmäßig verwendet ein Host Hardware-TSO, sofern dessen physische Adapter dies unterstützen.
Prozedur
- Navigieren Sie im vSphere Client zum Host.
- Erweitern Sie auf der Registerkarte Konfigurieren System.
- Klicken Sie auf Erweiterte Systemeinstellungen.
- Geben Sie für IPv4 den Wert des Parameters Net.UseHwTSO und für IPv6 des Parameters Net.UseHwTSO6 ein.
- Um TSO zu aktivieren, setzen Sie Net.UseHwTSO und Net.UseHwTSO6 auf 1.
- Um TSO zu deaktivieren, setzen Sie Net.UseHwTSO und Net.UseHwTSO6 auf 0.
- Klicken Sie auf OK, damit die Änderungen wirksam werden.
- Um das Treibermodul des physischen Adapters neu zu laden, führen Sie den Konsolenbefehl esxcli system module set in der ESXi Shell auf dem Host aus.
- Um den Treiber zu deaktivieren, führen Sie den Befehl esxcli system module set mit der Option --enabled false aus.
esxcli system module set --enabled false --module nic_driver_module
- Um den Treiber zu aktivieren, führen Sie den Befehl esxcli system module set mit der Option --enabled true aus.
esxcli system module set --enabled true --module nic_driver_module
- Um den Treiber zu deaktivieren, führen Sie den Befehl esxcli system module set mit der Option --enabled false aus.
Ergebnisse
Vorgehensweise zum Feststellen, ob TSO auf einem ESXi-Host aktiviert ist
Ermitteln Sie, ob Hardware-TSO im VMkernel aktiviert ist, wenn Sie die Netzwerkleistung eines Hosts mit latenzempfindlicher Arbeitslast schätzen. Hardware-TSO ist standardmäßig auf einem ESXi-Host aktiviert.
Prozedur
Verwaltung von TSO auf einer virtuellen Linux-Maschine
Aktivieren Sie TSO-Unterstützung auf dem Netzwerkadapter einer virtuellen Linux-Maschine, damit das Gastbetriebssystem TCP-Pakete, die segmentiert werden müssen, zum VMkernel weiterleitet.
Voraussetzungen
- Überprüfen Sie, ob ESXi das Linux-Gastbetriebssystem unterstützt.
Informationen finden Sie in der Dokumentation VMware-Kompatibilitätshandbuch.
- Stellen Sie sicher, dass der Netzwerkadapter auf der virtuellen Linux-Maschine vom Typ VMXNET2 oder VMXNET3 ist.
Prozedur
- ♦ Führen Sie in einem Terminalfenster auf dem Linux-Gastbetriebssystem zum Aktivieren oder Deaktivieren von TSO den Befehl ethtool mit den Optionen -K und tso aus.
- Führen Sie zum Aktivieren von TSO den folgenden Befehl aus:
ethtool -K ethY tso on
- Führen Sie folgenden Befehl aus, um TSO zu deaktivieren:
ethtool -K ethY tso off
Das Y in „ethY“ gibt hier die Sequenznummer der Netzwerkkarte in der virtuellen Maschine an.
- Führen Sie zum Aktivieren von TSO den folgenden Befehl aus:
Verwaltung von TSO auf einer virtuellen Windows-Maschine
Standardmäßig ist TSO auf einer virtuellen Windows-Maschine auf VMXNET2- und VXMNET3-Netzwerkadaptern aktiviert. Aus Leistungsgründen können Sie TSO deaktivieren.
Voraussetzungen
- Überprüfen Sie, ob ESXi das Windows-Gastbetriebssystem unterstützt. Informationen finden Sie in der Dokumentation VMware-Kompatibilitätshandbuch.
- Stellen Sie sicher, dass der Netzwerkadapter auf der virtuellen Windows-Maschine vom Typ VMXNET2 oder VMXNET3 ist.