ค้นหาเครื่องเสมือนทั้งหมดที่มีบอลลูนแบบบอลลูนหรือเปลี่ยนเป็นแรมในคลัสเตอร์ VMware หรือไม่


11

หากฉันต้องดูที่คลัสเตอร์ vSphere หรือกลุ่มทรัพยากรและดูระดับหนึ่งของการทำบอลลูนหรือการสลับหน่วยความจำฉันจะทราบได้อย่างไรว่า VMs ใดได้รับผลกระทบ ฉันรู้ว่าจะทำอย่างไรกับพวกเขาเมื่อฉันพบพวกเขา :)

ในตัวอย่างด้านล่างมี 65 เครื่องเสมือนในกลุ่มทรัพยากร มี RAM ที่มีบอลลูนน้อยกว่า 32 กิกะไบต์ ฉันจะระบุว่า VM ใดที่มีส่วนหนึ่งของ RAM ที่บอลลูนหรือเปลี่ยนเป็น

ป้อนคำอธิบายรูปภาพที่นี่


1
หากคุณต้องการลดความซับซ้อนของรหัสนี่เป็นแบบเส้นเดียว: Get-View -ViewType VirtualMachine | โดยที่-Object {$ _. Summary.QuickStats.BalloonedMemory -ne "0"} | select @ {n = 'ComputerName'; e = {$ _. ชื่อ}}, @ {n = 'SwappedMemory'; e = {$ _. Summary.quickstats.SwappedMemory}}, @ {n = 'BalloonedMemory'; e = {$ _. Summary.quickstats.SwappedMemory}}
TechGuyTJ

คำตอบ:


4

Powercli ยอดเยี่ยมสำหรับสิ่งนี้:

รับ -VM | โดยที่ {$ _. BalloonedMemory -ne '0'}

โหลดตัวอย่างเพิ่มเติมได้ที่นี่:

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

โดยเฉพาะอย่างยิ่งดู "VMs กับ Ballooning และการแลกเปลี่ยน" http://www.getshifting.com/wiki/powerclinotes#resource_pools_with_ballooning_and_swapping

คัดลอกจากลิงค์ด้านบน:

$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

คุณสามารถวางรหัส!
ewwhite

สิ่งนี้ทำงานได้ในเวลาไม่ถึง 2 นาทีใน Virtual Center ที่มี ~ 1200 VMs อัปเดตคำถามแล้ว
ewwhite

6

หวังว่านี่จะช่วยได้บ้าง

ขออภัยรวดเร็วดังนั้นคุณต้องการเรียงลำดับเพิ่มเติมในผลลัพธ์ข้อมูลนี้รวมถึงการจัดกลุ่มตามแหล่งข้อมูล (โฮสต์, ที่เก็บข้อมูล, คลัสเตอร์) ฉันวิ่งแข่งกับ 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()

สิ่งนี้จะให้ผลลัพธ์ด้านล่างซึ่งคุณสามารถแก้ไขและเรียงลำดับตามที่คุณต้องการจากจำนวนบอลลูนที่สูงขึ้น / เปลี่ยนเป็นต่ำ (+ ต้องการแปลง KB เป็น MB)

ฉันแก้ไขเอาต์พุต (ชื่อโฮสต์ทดแทนและจัดกลุ่มตามบอลลูน / สลับ)

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

หากคุณต้องการความช่วยเหลือเพิ่มเติมฉันสามารถลองทำให้พรุ่งนี้มีสติมากขึ้นเพราะวันนี้มันค่อนข้างช้า

แหล่งที่มา:

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

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

หวังว่านี่จะช่วยได้

ไชโย

PS ไม่แน่ใจว่า -1: kiloBytes หมายถึงอะไรจาก API


ขอขอบคุณ. ให้ฉันเชื่อมต่อและลองสิ่งนี้กับสภาพแวดล้อมที่มีปัญหา
ewwhite

ฉันสงสัยว่ามีวิธีที่รวดเร็วกว่าในการรับข้อมูลนี้หรือไม่
ewwhite

ใช่ว่าช้า
Danila Ladner

ฉันคิดว่ามีวิธีที่จะทำให้มันเร็วขึ้นนั่นเป็นเพียงต้นแบบ dorky ฉันจะดูมัน
Danila Ladner

@DanilaLadner ขอบคุณสำหรับคำตอบนี้ สคริปต์นี้ทำงานช้ามาก มีวิธีทำให้เร็วขึ้นหรือไม่
user1471980

1

นี่เป็นส่วนเสริมที่ช้ามากของเธรดเก่า แต่คุณสามารถทำให้มันเร็วขึ้นเก็บไว้ในไปป์ไลน์และหลีกเลี่ยงการสำหรับแต่ละลูป ลองดูสิ:

    get-vm | where{ $_.swappedmemory -ne '0'} | get-view | Select Name,@{Name="Swapped”;Expression={$_.summary.quickstats.swappedmemory}},@{Name="Ballooned";Expression={$_.summary.quickstats.balloonedmemory}}
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.