VM'nin Hyper-V ana bilgisayarında G / Ç yapıp yapmadığını belirleme


13

Hyper-V ile I / OI'nin çoğundan hangi VM'nin sorumlu olduğunu nasıl öğrenebilirim?

Durum: Ara sıra uzun süreli yüksek disk kullanımı gördüğüm bir dizi VM'ye (host başına yaklaşık 30) sahip Hyper-V ana bilgisayarlarım var. Hangi VM'nin buna neden olduğunu bilmek istiyorum.

İşlem Gezgini'ni kullanmayı denedim, ancak tüm Hyper-V ile ilgili G / Ç'nin "Sistem" işlemi tarafından işleneceğini bildirdi, bu yüzden orada yardım yok:

süreç araştırmacısı

Erişilen dosyalar tarafından bir dökümün olması zaten yardımcı olacaktır. Windows Server'ın tam GUI yüklemesinde bu bilgileri sağlayan Kaynak Monitörü bulunur. Bununla birlikte, Resmon'un Core ve Hyper-V kurulumlarında mevcut olmadığı görülmektedir.


@RyanRies no, vmwp.exe'nin G / Ç'nin herhangi birinde yer almasını görmüyorum. Yükün hangi disklere gideceğini bilmediğim için, IDE veya SCSI kod yolunu alıp almadığını söyleyemem, her ikisi de eşit derecede mümkün görünüyor.
wabbit

Yanıtlar:


9

Yerel iş istasyonunuzda Performans İzleyicisi'ni (Yönetici olarak çalıştır) açın. Sayaç ekleyin, hyper-v makinesi, Hyper-V Sanal IDE Denetleyicisi veya Hyper-V Sanal Depolama Aygıtından sayaçları seçin, sayaçları ve örnekleri (VM) uygun şekilde seçin. Sizin için en anlamlı sayacı bulmak için biraz balık tutmanız gerekebilir.

Hyper-V Performansını İzlemede Sayaçların arayacağı bazı iyi ipuçları var


Hımm, denedim. Yararlı sonuçlar vermedi ve bunun neden böyle olduğunu bilmiyorum. İlk başta, Sanal Depolama Aygıtı sayaçlarını bulmakta zorlandım - yüklemelerimde mevcut değiller gibi görünüyor. Disklerimin çoğu IDE olduğundan, Sanal IDE Denetleyicisine bir şans verdim, ancak bazı anlaşılmaz nedenlerden dolayı, aslında yüke neden olan örnek için sıfırlar dışında bir şey döndürmüyor (bu arada kazara tökezlediğim) - diğer durumlarda aklı başında değerler üretiyor gibi görünüyor.
wabbit

2
VM Integration şeyleri yüklüyse IDE kullanmıyorsunuz (yapılandırma ekranının söylediklerinden bağımsız olarak; MS'in zayıf yapılandırma ekranı seçeneklerinde beni çalıştırmayın), bu yüzden Virt Stor Dev sayaçlarını kullanmanız gerekir. İkincisi, VM başına değil, VHD başınadır, bu nedenle biraz kayıttan ayrılma söz konusudur.
Chris S

Bu onu temizler. Sonunda sanal depolama aygıtını buldum, sanal diskler için aklı başında değerler veriyor gibi görünüyor.
the-wabbit

Chris S haklı. Belirttiği performans izleme sayacının tam adı "Hyper-V Sanal Depolama Aygıtı" dır. Yani bu kategorideki "Kuyruk uzunluğu", VHD (X) dosyalarınızdan hangisinin diskinizle en fazla gecikme süresine sahip olduğuna dair güzel bir fikir verir.
Koen Zomers

2

Syneticon-dj, bu öğleden sonra senin için bir şey yazdım. Bu sorunun ilginç olduğunu düşündüm, bu yüzden bu basit komut dosyası size Hyper-V ana bilgisayarında çalışan her VM'de okuma ve yazma G / Ç istatistikleri verecektir. Ek bir bonus olarak, her VM'yi vmwp.exe'nin İşlem Kimliğiyle ilişkilendirir.

GUI'ye ihtiyaç duymadığı için bunu Hyper-V sunucunuzda çalıştırabilirsiniz.

Dezavantajı, bu konuda çalışırken, performans sayaçlarının bir süre harika çalıştığını fark ettim ve sonra fark edilebilir bir nedenden dolayı sıfırda kalmaya karar verdiler. Belki de bu bir hata değil, Chris S'nin dediği gibi ... ama bu sayaçlar ne yazık ki çok yararlı olmayabilir. Ne olursa olsun, Virt kullanmak için komut dosyasını değiştirmek çok kolay olurdu. Bunun yerine Depolama Aygıtı sayaçları.

Çıktı şöyle görünür:

PID     VMName               ReadBytesPerSec             WriteBytesPerSec
---     ------               ---------------             ----------------
5108    DC02                          483.90                            0
2796    DC01                               0                            0
3348    ECA01                     4782668.27                            0

#Requires -Version 3
function Get-VMPidAndIO
{
<#
.SYNOPSIS
    Gets the Process ID and I/O statistics of each virtual machine running on the Hyper-V host.
.DESCRIPTION
    Gets the Process ID and I/O statistics of each virtual machine running on the Hyper-V host.
    Currently only works for VMs using virtual IDE controllers.
    Requires Powershell 3 at a minimum.
.LINK
    http://myotherpcisacloud.com
.NOTES
    Written by Ryan Ries, June 2013.
    ryan@myotherpcisacloud.com
#>
    BEGIN
    {
        Try
        {
            $VMProcesses = Get-CimInstance -Query "Select ProcessId,CommandLine From Win32_Process Where Name ='vmwp.exe'" -ErrorAction Stop
        }
        Catch
        {
            Write-Error $_.Exception.Message
            Return
        }
    }
    PROCESS
    {

    }
    END
    {
        Foreach($_ In $VMProcesses) 
        {
            $VMName = $((Get-VM | Where Id -EQ $_.CommandLine.Split(' ')[-1]).Name)            
            [PSCustomObject]@{PID=$_.ProcessId;
                              VMName=$VMName; 
                              ReadBytesPerSec=[Math]::Round($(Get-Counter "\Hyper-V Virtual IDE Controller (Emulated)($VMName`:Ide Controller)\Read Bytes/sec").CounterSamples.CookedValue, 2);
                              WriteBytesPerSec=[Math]::Round($(Get-Counter "\Hyper-V Virtual IDE Controller (Emulated)($VMName`:Ide Controller)\Write Bytes/sec").CounterSamples.CookedValue, 2); }
        }

    }
}

Bu bir hata değil, cevabımdaki yorumlara bakın.
Chris S

O zaman merak ediyorum neden sayaçlar zaman zaman çalışıyor gibi görünüyor? (Tam entegrasyon hizmetlerine sahip Windows misafirleri.) Ve neden VHD başına sayaçların önemli ölçüde daha az kullanışlı soyutlama düzeyini seçecekler? :(
Ryan Ries

Neden aralıklı olarak bir şey göstereceğinden emin değilim. Neden gelince, Hyper-V'de depolamanın çalışma şekli budur. Esasen tüm VM'ler için sadece bir depolama denetleyicisi vardır. Yapılandırmada bir "IDE Denetleyici" kullanarak, söz konusu VM'ye maruz kalan depolama için IDE Öykünmesini etkinleştiriyorsunuz (SCSI ile ilgisi olmayan ve yalnızca herhangi bir depolama denetleyicisi öykünmesini devre dışı bırakan "SCSI Denetleyici" nin aksine) . Entegrasyon Hizmetlerini destekleyen VM'ler IDE öykünmesini atlar. Depolama denetleyicisi sayaçları, her VHD'ye hangi VM'nin bağlı olduğunu ve dolayısıyla çalışma şeklini tam olarak umursamıyor.
Chris S

Muhteşem. Bilgi için teşekkürler. Bu konuyla ilgili daha fazla bilgi edinmekle çok ilgileniyorum, ancak iyi bir teknik dokümantasyon oluşturmakta zorlanıyorum. Bence MS bizim için bu şeylerin çoğunu demystify olurdu. Çözümlerine daha fazla güvenebilirdik. Sadece bir Hyper-V Internals kitabı istiyorum. Sormak için çok mu var? :)
Ryan Ries

1

Diğer cevapların her ikisi de faydalıdır. Ama aradığınızı çok daha kolay buldum (VHD'ler bir dosya sunucusu yerine yerel veya yerel olarak paylaşılan disklerde saklandığında) "Kaynak Monitörü" nü açıp Disk sekmesine bakarak. "Disk Etkinliği" ne bakın ve "Toplam (B / sn)" ye göre sıralayın. VHD'leri etkinlik sırasına göre listelenmiş olarak göreceksiniz.

Açıkçası stratejim, yerel olarak oturum açtığınız makineler için gevşek bir yaklaşımdır, bu da büyük, başsız bir ortamda daha az kullanışlı olmasını sağlar.


1
Jake, cevap vermek için zaman ayırdığın için teşekkürler. Gerçekten ediyorum seviyorum sunucu tam bir grafiksel yüklemek ama sadece Hyper-V sürümü veya Sunucu Çekirdek çalışmadığı zamanlarda kaynak monitörüne sadece bakmak için, ancak kullanılamaz. Sahip olduğum şey bu.
the wabbit

1

Seçilen Hyper-V ana bilgisayarlarında bulunan tüm VM'ler için Konuk performans verilerini toplayan bir PowerShell GUI aracı yazdım. Veri toplama ve eşleştirme get-counter ve Hyper-V WMI bilgileri ile yapılır. Herhangi bir üye sunucudan çalıştırın, modül gerekmez. Umarım bu Hyper-V ana bilgisayarları ve VM'lerindeki performans sorunlarını hızla gidermeye yardımcı olur.

Hyper-V Sanal Makine Misafir Performans İstatistiklerini (PowerShell) Göster https://gallery.technet.microsoft.com/Show-Hyper-V-Virtual-652fdd54


0

Yüksek G / Ç'ye neden olan ve aynı zamanda bu tür yüksek G / Ç'ler hakkında uyarı yeteneğine sahip olan detecintg sanal makineye yardımcı olabilecek bir 3. taraf aracını denemek isteyebilirsiniz. Buradan kontrol edebilirsiniz - ApexSQL VM Monitor .

Bu araç, ana makine ve sanal makine için büyük disk sayaçlarını izleyebilir ve önceden tanımlanmış sayaçların yanı sıra, Performans monitöründen sayaçların grafik sunumunu izlemek ve göstermek için ayarlanabilir.

Umarım yardımcı oldum.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.