Die VMkernel-Systeminformations-Shell (bekannt als vsish) ist ein hervorragendes Tool zur Behebung von Netzwerkleistungsproblemen. vsish wird in der ESXi-Shell ausgeführt und ermöglicht Ihnen das Anzeigen erweiterter Systemparameter und Leistungsinformationen des ESXi-Hosts und zugehöriger Objekte wie der VMs.
Das Tool vsish bietet Zugriff auf die VSI-Knoten von vmkernel. Abgesehen von den Get- und Set-Befehlen des nicht interaktiven Modus bietet dieses Tool nur abgekürzte Befehlsoptionen.
Hinweis :VSI-Knoten sind für vmkernel, was proc-Knoten für den Linux-Kernel sind. Sie sind speicherbasierte hierarchische Strukturen der Laufzeiteinstellungen der verschiedenen vmkernel-Komponenten. Um auf diese Knoten zuzugreifen, verwenden Sie das ESXi-Dienstprogramm vsish (VSI Shell). VSI-Knoten können sich zwischen Releases und sogar mit Update-Releases ändern. Daher sollten Sie sich nicht darauf verlassen, dass die aktuelle Benennung und Position von Knoten unverändert bleibt, wenn Sie beabsichtigen, Funktionen mithilfe dieser Knoten zu automatisieren oder zu skripten.Auflisten der vsish-Befehlszeilenoptionen:
vsish --help vsish: [options] [commands] -e: non-interactive mode. Executes commands specified on the cmdline. All text following this flag is assumed to be part of a command. -E [status]: checks for status, currently requires -e. see vmkapi_status.h for error code strings. -b: batch mode. doesn't print prompt -f: ignore vsi version check -l [level]: set loglevel -r: raw output mode. -p: python output mode. -d: drsa output mode. -c [file]: use [file] instead of live kernel -m: print the VSI MD5 checksum corresponding to the running vmkernel -R [new root]: use [new root] as the root node instead of '/' -h: print friendly help message
Sobald der Befehl eingegeben wurde, zeigt der Befehl ls den Inhalt eines Arbeitsverzeichnisses und der Befehl cat kann verwendet werden, um den Inhalt einer Datei anzuzeigen. Schließlich kann der cd-Befehl verwendet werden, um Verzeichnisse zu wechseln.
Beispiel 1
Das erste Beispiel zeigt, wie man die maximale Übertragungseinheit für eine bestimmte vmnic erhält.
/bin # vsish /> cd net /net/> cd pNics /net/pNics/> ls vmnic0/ vmnic1/ vmnic2/ vmnic3/
/net/pNics/> cd vmnic1 /net/pNics/vmnic1/> cat mtu MTU { mtu:1500 } /net/pNics/vmnic1/> q
Beispiel 2
Das zweite Beispiel zeigt, wie CPU-bezogene Informationen für einen Host gesammelt werden.
/bin # vsish /> cd hardware /hardware/> cd cpu /hardware/cpu/> ls packageList/ cpuList/ cpuModelName cacheInfo cpuInfo
/hardware/cpu/> cat cpuInfo CPU global information { Hyperthreading state:Hyperthreading state: 3 -> enabled HV state:HV state: 3 -> HV Enabled Number of packages:2 Number of cores:8 Number of CPUs (threads):16 HV Replay capable:1 Reason replay is disabled on Host:Reason replay is disabled on Host: 0 -> HV Replay is supported } /hardware/cpu/> q
Hinweis
Im Folgenden finden Sie einige VSI-Shell-Befehle für die Navigation und andere allgemeine Vorgänge:
- CD :Bewegen Sie sich im Knotenbaum nach unten.
- CD .. :Nach oben zur vorherigen Ebene wechseln.
- ls – Liste :Der Inhalt des aktuellen Knotens.
- ls [Pfad] :Listet den Inhalt des Knotens am Ende des angegebenen Pfads auf.
- erhalten :Listen Sie den Inhalt eines Blattobjekts im Knoten auf. Dies ist die zuvor in diesem Abschnitt verwendete Befehlsoption mit dem nicht-interaktiven Modus -e Parameter.
- Katze :Dasselbe wie der get-Befehl, aber im interaktiven Modus.
- festgelegt :Ändern Sie den Wert des Schlüssel/Wert-Paares eines Blattobjekts. Sie können diese Option im nicht interaktiven Modus verwenden, um vmkernel-VSI-Knoten zu ändern. Um beispielsweise einen Wert in einem VSI-Knoten über die Befehlszeile festzulegen, führen Sie den folgenden Befehl aus:
vsish -e set [value] [path/node]