Ich arbeite an einem Projekt, das die VGPU-Nutzung virtueller Maschinen überwachen kann. Der Hypervisor ist vCenter
: Wir haben NVIDIA A16-Karten auf vCenter-Hosts installiert und einigen Windows-VMs auf diesem Host eine 16-vGPU zugewiesen. Diese vGPUs sind demselben GPU-Chip zugeordnet.
Ich habe versucht, den Befehl zu verwenden nvidia-smi
, um die vGPU-Nutzung sowohl auf dem Host als auch in den VMs abzurufen. Auf dem Host habe ich verwendet nvidia-smi vgpu
und in den VMs habe ich verwendet nvdia-smi
. Es stellte sich jedoch heraus, dass die von nvidia-smi bereitgestellten Metriken immer von denen abwichen, die vom Windows-Betriebssystem in der VM bereitgestellt wurden.
Beispielsweise nvidia-smi
könnte der Verbrauch so niedrig sein wie6 %, aber die Nutzung vom Windows Task-Manager war immer um15%.
Wir vertrauen lieber den vom Gastbetriebssystem bereitgestellten Messdaten, da diese die tatsächlichen Anforderungen des Benutzers widerspiegeln.
Meine Frage ist: Was ist die Bedeutung und Quelle der Nvidia-SMI-Metriken? Warum ist das Ergebnis so unterschiedlich? Kann ich das Ergebnis irgendwie ändern, um die tatsächliche Gästenachfrage widerzuspiegeln?
Danke für alle Hinweise!
Antwort1
Die Zeiträume und/oder Zeitpunkte, während/zu denen Task-Manager und nvidia-smi messen, können unterschiedlich sein, was zu unterschiedlichen Nutzungsprozentsätzen führt.
Gemäß derDokumentation
Auslastung.gpu
Prozentualer Anteil der Zeit im letzten Stichprobenzeitraum, in der ein oder mehrere Kernel auf der GPU ausgeführt wurden. Der Stichprobenzeitraum kann je nach Produkt zwischen 1 Sekunde und 1/6 Sekunde liegen.
Speicherauslastung
Prozentualer Anteil der Zeit im letzten Abtastzeitraum, in der der globale (Geräte-)Speicher gelesen oder geschrieben wurde. Der Abtastzeitraum kann je nach Produkt zwischen 1 Sekunde und 1/6 Sekunde liegen.
Versuchen Sie es mit einer konstanten, sich nicht ändernden Last und messen Sie dann, ob sie übereinstimmen.