Temukan semua mesin virtual dengan RAM yang menggelembung atau bertukar di VMware cluster?

11

Jika saya melihat kluster vSphere atau kumpulan sumber daya dan melihat tingkat tertentu dari memori yang membengkak atau bertukar, bagaimana cara mengidentifikasi VM mana yang terpengaruh? Saya tahu apa yang harus dilakukan dengan mereka setelah saya menemukannya :)

Dalam contoh di bawah ini, ada 65 mesin virtual di kumpulan sumber daya. Hanya ada kurang dari 32 Gigabytes RAM yang membengkak. Bagaimana cara mengidentifikasi VM mana yang sebagian RAM-nya menggelembung atau bertukar?

masukkan deskripsi gambar di sini

putih
sumber
1
Jika Anda ingin menyederhanakan kode ini adalah satu-liner: Get-View -ViewType VirtualMachine | Where-Object {$ _. Summary.QuickStats.BalloonedMemory -ne "0"} | pilih @ {n = 'ComputerName'; e = {$ _. name}}, @ {n = 'SwappedMemory'; e = {$ _. Summary.quickstats.SwappedMemory}}, @ {n = 'BalloonedMemory'; e = {$ _. Summary.quickstats.SwappedMemory}}
TechGuyTJ

Jawaban:

4

Powercli sangat bagus untuk hal-hal seperti ini:

Dapatkan-VM | di mana {$ _. BalloonedMemory -ne '0'}

Memuat lebih banyak contoh di sini:

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

Khususnya lihat "VMs with Ballooning and Swapping" http://www.getshifting.com/wiki/powerclinotes#resource_pools_with_ballooning_and_swapping

Disalin dari tautan di atas:

$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
sumber
Anda dapat menempelkan kode!
ewwhite
Ini bekerja, berjalan dalam waktu kurang dari 2 menit di Pusat Virtual dengan ~ 1200 VM. Pertanyaan diperbarui.
ewwhite
6

Semoga ini akan sedikit membantu.

Maaf, cepat, jadi Anda ingin melakukan semacam tambahan dalam output info ini, serta pengelompokan berdasarkan sumber daya (host, datastore, cluster), saya berlari melawan seluruh vCenter.

#!/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()

Ini akan memberi Anda hasil di bawah ini di mana Anda sudah dapat memodifikasi dan mengurutkannya seperti yang Anda inginkan dari jumlah yang lebih besar / lebih tinggi menjadi lebih rendah (+ ingin mengonversi KB ke MB)

Saya melakukan modifikasi output (nama host pengganti dan dikelompokkan berdasarkan balon / ditukar)

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>]

Jika Anda memerlukan bantuan tambahan, saya dapat mencoba membuatnya lebih waras besok karena hari ini sudah sangat terlambat.

SUMBER:

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

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

Semoga ini membantu.

Bersulang.

PS Tidak yakin apa arti -1: kiloBytes dari API.

Danila Ladner
sumber
Terima kasih. Biarkan saya terhubung dan coba ini terhadap lingkungan yang bermasalah.
ewwhite
Saya ingin tahu apakah ada cara yang lebih cepat untuk mendapatkan informasi ini.
ewwhite
ya itu lambat.
Danila Ladner
Saya yakin ada cara untuk membuatnya lebih cepat, itu hanya prototipe konyol, saya akan memeriksanya.
Danila Ladner
@DanilaLadner, terima kasih atas jawaban ini. Script ini berjalan sangat lambat. Apakah ada cara untuk membuat ini lebih cepat?
user1471980
1

Ini merupakan tambahan yang sangat terlambat untuk utas lama, tetapi Anda dapat membuatnya lebih cepat dengan menjaganya dalam jalur pipa dan menghindari untuk setiap loop. Cobalah ini:

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