Finden Sie alle virtuellen Maschinen mit aufgeblähtem oder ausgetauschtem RAM im VMware-Cluster?

11

Wie kann ich feststellen, welche VMs betroffen sind, wenn ich mir einen vSphere-Cluster oder Ressourcenpool anschaue und feststelle, dass eine bestimmte Ebene des Speicheraufbaus oder -austauschs vorhanden ist? Ich weiß, was ich mit ihnen machen soll, wenn ich sie gefunden habe :)

Im folgenden Beispiel befinden sich 65 virtuelle Maschinen im Ressourcenpool. Es gibt knapp 32 Gigabyte RAM im Ballon. Wie identifiziere ich, bei welchen VMs ein Teil ihres Arbeitsspeichers aufgebläht oder ausgetauscht wurde?

Geben Sie hier die Bildbeschreibung ein

ewwhite
quelle
1
Wenn Sie den Code vereinfachen möchten, handelt es sich um einen Einzeiler: Get-View -ViewType VirtualMachine | Where-Object {$ _. Summary.QuickStats.BalloonedMemory -ne "0"} | Wählen Sie @ {n = 'Computername'; e = {$ _. Name}}, @ {n = 'SwappedMemory'; e = {$ _. Summary.quickstats.SwappedMemory}}, @ {n = 'BalloonedMemory'; e = {$ _. Summary.quickstats.SwappedMemory}}
TechGuyTJ

Antworten:

4

Powercli eignet sich hervorragend für solche Dinge:

Get-VM | wo {$ _. BalloonedMemory -ne '0'}

Viele weitere Beispiele finden Sie hier:

http://www.getshifting.com/wiki/powerclinotes

Schauen Sie sich insbesondere "VMs mit Ballonfahren und Tauschen" an http://www.getshifting.com/wiki/powerclinotes#resource_pools_with_ballooning_and_swapping

Vom obigen Link kopiert:

$myCol = @()
foreach($vm in (Get-View -ViewType VirtualMachine | Where-Object `
  {$_.Summary.QuickStats.BalloonedMemory -ne "0"})){
    $Details = "" | Select-Object VM, `
    SwappedMemory ,BalloonedMemory

    $Details.VM = $vm.Name
    $Details.SwappedMemory = $vm.Summary.QuickStats.SwappedMemory
    $Details.BalloonedMemory = $vm.Summary.QuickStats.BalloonedMemory

    $myCol += $Details
  }
$myCol
Rqomey
quelle
Sie können Code einfügen!
ewwhite
Dies funktionierte und lief in weniger als 2 Minuten auf einem virtuellen Center mit ~ 1200 VMs. Frage aktualisiert.
ewwhite
6

Hoffe das wird ein bisschen helfen.

Entschuldigung, war schnell, so dass Sie zusätzliche Sortierungen in dieser Informationsausgabe sowie eine Gruppierung nach Ressourcen (Host, Datenspeicher, Cluster) durchführen möchten. Ich habe das gesamte vCenter ausgeführt.

#!/bin/env python
__author__ = 'dladner'

import os
import sys
import pysphere

from pysphere import VIServer, MORTypes
from pysphere.resources import VimService_services as VI

s = VIServer()
s.connect("vcenter_hostname_or_ip", "username", "password")
vmlist = s.get_registered_vms(status="poweredOn")
count = 0
for vmpath in vmlist:
    pm1 = s.get_performance_manager()
    vm = s.get_vm_by_path(vmpath)
    mor = vm._mor
    ballooned = pm1.get_entity_statistic(mor, 77)
    swapped = pm1.get_entity_statistic(mor, 61)
    count += 1
    print "VM Number %d is %s and Ballooned Memory Amount on this VM is : %s" % (count, vmpath, ballooned)
    print "VM Number %d is %s and Swapped Memory Amount on this VM is  : %s" % (count, vmpath, swapped)

print "NOTICE: This statistic refers to VMkernel swapping and not to guest OS swapping."
s.disconnect()

Dies gibt Ihnen das folgende Ergebnis, in dem Sie es bereits ändern und sortieren können, wie Sie es möchten, von einem höheren Ballon / getauschten Betrag zu einem niedrigeren (+ möchte KB in MB konvertieren).

Ich habe die Ausgabe geändert (ersetzte Hostnamen und gruppiert nach Ballon / Austausch).

SWAPPED:

VM Number 2 is [vm11_rr] hostname and Swapped Memory Amount on this VM is  : [<vm-303427:swapped(61):Swapped::107336:kiloBytes:2013-08-31 04:35:33.561569>]
VM Number 9 is [vm04] hostname and Swapped Memory Amount on this VM is  : [<vm-17451:swapped(61):Swapped::7896:kiloBytes:2013-08-31 04:36:25.791696>]
VM Number 10 is [vm05_nq] hostname and Swapped Memory Amount on this VM is  : [<vm-266882:swapped(61):Swapped::816:kiloBytes:2013-08-31 04:36:33.266692>]
VM Number 11 is [vm06] hostname and Swapped Memory Amount on this VM is  : [<vm-4550:swapped(61):Swapped::-1:kiloBytes:2013-08-31 04:36:40.313133>]
VM Number 14 is [vm05] hostname and Swapped Memory Amount on this VM is  : [<vm-158642:swapped(61):Swapped::12532:kiloBytes:2013-08-31 04:37:02.907590>]
VM Number 23 is [vm07] hostname and Swapped Memory Amount on this VM is  : [<vm-437276:swapped(61):Swapped::135272:kiloBytes:2013-08-31 04:38:10.633787>]
VM Number 24 is [vm14_rr] hostname and Swapped Memory Amount on this VM is  : [<vm-74703:swapped(61):Swapped::183436:kiloBytes:2013-08-31 04:38:17.985025>]
VM Number 25 is [vm01] hostname and Swapped Memory Amount on this VM is  : [<vm-156212:swapped(61):Swapped::13268:kiloBytes:2013-08-31 04:38:25.224494>]
VM Number 33 is [vm14] hostname and Swapped Memory Amount on this VM is  : [<vm-156661:swapped(61):Swapped::828:kiloBytes:2013-08-31 04:39:25.827377>]
VM Number 39 is [vm23_rr] hostname and Swapped Memory Amount on this VM is  : [<vm-391487:swapped(61):Swapped::10020:kiloBytes:2013-08-31 04:40:10.795514>]
VM Number 48 is [vm15] hostname and Swapped Memory Amount on this VM is  : [<vm-446333:swapped(61):Swapped::-1:kiloBytes:2013-08-31 04:41:20.224237>]
VM Number 49 is [vm14_rr] hostname and Swapped Memory Amount on this VM is  : [<vm-395852:swapped(61):Swapped::91664:kiloBytes:2013-08-31 04:41:27.588455>]
vm number 51 is [vm03] hostname and swapped memory amount on this vm is  : [<vm-47780:swapped(61):swapped::8:kilobytes:2013-08-31 04:41:43.539276>]
vm number 54 is [vm29_rr] hostname and swapped memory amount on this vm is  : [<vm-430048:swapped(61):swapped::1200:kilobytes:2013-08-31 04:42:07.398927>]
vm number 56 is [vm03] hostname and swapped memory amount on this vm is  : [<vm-45758:swapped(61):swapped::19560:kilobytes:2013-08-31 04:42:22.790720>]
vm number 59 is [vm25_rr] hostname and swapped memory amount on this vm is  : [<vm-267833:swapped(61):swapped::55836:kilobytes:2013-08-31 04:42:46.202327>]
vm number 60 is [vm01] hostname and swapped memory amount on this vm is  : [<vm-279859:swapped(61):swapped::4289160:kilobytes:2013-08-31 04:42:53.200330>]
vm number 61 is [vm04] hostname and swapped memory amount on this vm is  : [<vm-174860:swapped(61):swapped::26288:kilobytes:2013-08-31 04:43:01.326958>]
vm number 62 is [vm25_rr] hostname and swapped memory amount on this vm is  : [<vm-384185:swapped(61):swapped::8180:kilobytes:2013-08-31 04:43:09.043827>]
vm number 63 is [vm12_rr] hostname and swapped memory amount on this vm is  : [<vm-434605:swapped(61):swapped::25780:kilobytes:2013-08-31 04:43:16.270494>]
vm number 64 is [vm01] hostname and swapped memory amount on this vm is  : [<vm-372871:swapped(61):swapped::21840:kilobytes:2013-08-31 04:43:23.820811>]
vm number 67 is [vm09_nq] hostname and swapped memory amount on this vm is  : [<vm-184134:swapped(61):swapped::716:kilobytes:2013-08-31 04:43:46.909753>]
vm number 69 is [vm31_rr] hostname and swapped memory amount on this vm is  : [<vm-434653:swapped(61):swapped::148:kilobytes:2013-08-31 04:44:02.652494>]

BALLOONED::
VM Number 23 is [vm07] hostname and Ballooned Memory Amount on this VM is : [<vm-437276:vmmemctl(77):Balloon::2638188:kiloBytes:2013-08-31 04:38:08.631993>]
VM Number 24 is [vm14_rr] hostname and Ballooned Memory Amount on this VM is : [<vm-74703:vmmemctl(77):Balloon::1335560:kiloBytes:2013-08-31 04:38:16.188130>]
VM Number 49 is [vm14_rr] hostname and Ballooned Memory Amount on this VM is : [<vm-395852:vmmemctl(77):Balloon::1249812:kiloBytes:2013-08-31 04:41:25.789048>]
VM Number 56 is [vm03] hostname and Ballooned Memory Amount on this VM is : [<vm-45758:vmmemctl(77):Balloon::-1:kiloBytes:2013-08-31 04:42:20.445191>]

Wenn Sie zusätzliche Hilfe benötigen, kann ich versuchen, es morgen vernünftiger zu machen, da es heute ziemlich spät ist.

QUELLEN:

http://pubs.vmware.com/vsphere-50/index.jsp#com.vmware.wssdk.apiref.doc_50/memory_counters.html

https://code.google.com/p/pysphere/

Hoffe das hilft.

Prost.

PS Nicht sicher, was -1: KiloBytes von API bedeutet.

Danila Ladner
quelle
Vielen Dank. Lassen Sie mich eine Verbindung herstellen und dies gegen die unruhige Umgebung versuchen.
ewwhite
Ich frage mich, ob es einen schnelleren Weg gibt, diese Informationen zu erhalten.
ewwhite
Ja, das ist langsam.
Danila Ladner
Ich bin mir sicher, dass es einen Weg gibt, es schneller zu machen, dass einer nur ein dorky Prototyp ist, ich werde es untersuchen.
Danila Ladner
@ DanilaLadner, danke für diese Antwort. Dieses Skript läuft sehr langsam. Gibt es eine Möglichkeit, dies schneller zu machen?
user1471980
1

Dies ist eine sehr späte Ergänzung zu einem alten Thread, aber Sie können dies schneller machen, indem Sie ihn in einer Pipeline halten und ein für jede Schleife vermeiden. Probieren Sie es aus:

    get-vm | where{ $_.swappedmemory -ne '0'} | get-view | Select Name,@{Name="Swapped”;Expression={$_.summary.quickstats.swappedmemory}},@{Name="Ballooned";Expression={$_.summary.quickstats.balloonedmemory}}
ChrisW
quelle