Aracılığıyla paylaş


VHD Disk Sıkıştırma kullanımını ve performansını anlama

VHD Disk Sıkıştırma'nın ne sıklıkta kullanıldığını, kaydedilen alanı ve çalıştırmak için geçen süreyi anlamak için Windows Olay Günlüğü'nü kullanabilirsiniz. Olayları yorumlamanıza yardımcı olması için kullanabileceğiniz bazı örnek PowerShell betikleri ve Azure Log Analytics sorguları aşağıda verilmiştir.

PowerShell

VHD Disk Sıkıştırma ölçümleri betiği

Bu örnekte, önceki 30 güne ait VHD Disk Sıkıştırma olaylarını bir kılavuza biçimlendirilmiş olarak almak için PowerShell kullanılır. Yükseltilmiş bir PowerShell isteminden aşağıdaki kod bloğunu çalıştırın:

# Set startTime to number of days to search the event logs
$startTime = (Get-Date).AddDays(-30)

# Query Event Log using Get-WinEvent filtered to the VHD Disk Compaction metric events
$diskCompactionEvents = Get-WinEvent -FilterHashtable @{
    StartTime       = $startTime
    ProviderName    = 'Microsoft-FSLogix-Apps'
    ID         = 57
}

# Format event properties
$compactionMetrics = $diskCompactionEvents | Select-Object `
    @{l="Timestamp";e={$_.TimeCreated}},`
    @{l="ComputerName";e={$_.MachineName}},`
    @{l="Path";e={$_.Properties[0].Value}},`
    @{l="WasCompacted";e={$_.Properties[1].Value}},`
    @{l="TimeSpent(sec)";e={[math]::round($_.Properties[7].Value / 1000,2)}},`
    @{l="MaxSize(GB)";e={[math]::round($_.Properties[2].Value / 1024,2)}},`
    @{l="MinSize(GB)";e={[math]::round($_.Properties[3].Value / 1024,2)}},`
    @{l="InitialSize(GB)";e={[math]::round($_.Properties[4].Value / 1024,2)}},`
    @{l="FinalSize(GB)";e={[math]::round($_.Properties[5].Value / 1024,2)}},`
    @{l="SavedSpace(GB)";e={[math]::round($_.Properties[6].Value / 1024,2)}}

# Display metrics in Out-GridView
$compactionMetrics | Out-GridView

Azure Log Analytics Sorguları

Önemli

Aşağıdaki sorguyu kullanmak için öncelikle sanal makinelerinizi olay günlüklerini Log Analytics çalışma alanına gönderecek şekilde yapılandırmanız gerekir. Daha fazla bilgi için bkz. Log Analytics aracısı ile Windows olay günlüğü veri kaynaklarını toplama. VHD Disk Sıkıştırma için kullanılan günlükler şunlardır:

  • Microsoft-FSLogix-Apps/Operasyonel
  • Microsoft-FSLogix-Apps/Yönetici

VHD Disk Sıkıştırma ölçümleri sorgusu

VHD Disk Sıkıştırma işlemi sırasında harcanan süre

Sıkıştırma işlemi sırasında harcanan ortalama, en düşük ve maksimum süreyi görüntüler. Veriler, diskin sıkıştırılıp sıkıştırılamadığına göre özetlenir.

Event
| where EventLog == 'Microsoft-FSLogix-Apps/Operational' and EventID == 57
| parse kind=relaxed EventData with *
    "<Data Name=\"Path\">" Path
    "</Data><Data Name=\"WasCompacted\">" DiskCompaction
    "</Data><Data Name=\"MaxSupportedSizeMB\">" MaxSupportedSizeMB
    "</Data><Data Name=\"MinSupportedSizeMB\">" MinSupportedSizeMB
    "</Data><Data Name=\"SizeBeforeMB\">" SizeBeforeMB
    "</Data><Data Name=\"SizeAfterMB\">" SizeAfterMB
    "</Data><Data Name=\"SavedSpaceMB\">" SavedSpaceMB
    "</Data><Data Name=\"TimeSpentMillis\">" TimeSpentMillis "</Data>" *
| extend TimeSpent = todecimal(TimeSpentMillis) / 1024
| where DiskCompaction <> ""
| summarize Average=round(avg(TimeSpent),2), Max=round(max(TimeSpent),2), Min=round(min(TimeSpent),2) by DiskCompaction

Çıkış örneği:

Harcanan Zaman sorgusunu çalıştırmanın sonucunu gösteren çubuk grafik

Sıkıştırılan kapsayıcı VHD(x) dosyalarının sayısı

Eşik değerlerine göre sıkıştırma için kaç kapsayıcı VHD(x) dosyasının seçildiğini görüntüler.

Event
| where EventLog == 'Microsoft-FSLogix-Apps/Operational' and EventID == 57
| parse kind=relaxed EventData with *
    "<Data Name=\"Path\">" Path
    "</Data><Data Name=\"WasCompacted\">" DiskCompaction
    "</Data><Data Name=\"MaxSupportedSizeMB\">" MaxSupportedSizeMB
    "</Data><Data Name=\"MinSupportedSizeMB\">" MinSupportedSizeMB
    "</Data><Data Name=\"SizeBeforeMB\">" SizeBeforeMB
    "</Data><Data Name=\"SizeAfterMB\">" SizeAfterMB
    "</Data><Data Name=\"SavedSpaceMB\">" SavedSpaceMB
    "</Data><Data Name=\"TimeSpentMillis\">" TimeSpentMillis "</Data>" *
| where DiskCompaction <> ""
| summarize NumberOfVhdContainers=count() by DiskCompaction

Çıkış örneği:

Sıkıştırılmış V H D dosyalarının (kapsayıcılar) sayısını gösteren pasta grafik

Kaydedilen toplam depolama alanı

VHD Disk Sıkıştırma işlemi sırasında geri alınan GB depolama miktarını görüntüler.

Event
| where EventLog == 'Microsoft-FSLogix-Apps/Operational' and EventID == 57
| parse kind=relaxed EventData with *
    "<Data Name=\"Path\">" Path
    "</Data><Data Name=\"WasCompacted\">" DiskCompaction
    "</Data><Data Name=\"MaxSupportedSizeMB\">" MaxSupportedSizeMB
    "</Data><Data Name=\"MinSupportedSizeMB\">" MinSupportedSizeMB
    "</Data><Data Name=\"SizeBeforeMB\">" SizeBeforeMB
    "</Data><Data Name=\"SizeAfterMB\">" SizeAfterMB
    "</Data><Data Name=\"SavedSpaceMB\">" SavedSpaceMB
    "</Data><Data Name=\"TimeSpentMillis\">" TimeSpentMillis "</Data>" *
| extend Storage = todecimal(SavedSpaceMB)
| summarize StorageSavings = (format_bytes(sum(Storage * 1024 * 1024),2,"GB"))

Winlogon (oturumu kapatma) gecikme uyarıları

60 saniyelik eşiği aşmaya neden olan Winlogon tüm hizmetleri görüntüler. Ortalama ve harcanan en uzun süreyle birlikte oluşum sayısını gösterir.

Event
| where Source == 'Microsoft-Windows-Winlogon' and EventID == 6006
| parse kind=relaxed ParameterXml with "<Param>" ServiceName "</Param><Param>" Duration "</Param><Param>" EventType "</Param><Param>-</Param>"
| extend TimeInSeconds = todecimal(Duration)
| where EventType == "Logoff"
| summarize Occurrences=count(),Average=round(avg(TimeInSeconds),2), Minimum=round(min(TimeInSeconds),2), Maximum=round(max(TimeInSeconds),2) by ServiceName

Çıkış örneği:

Winlogon eşiğini aşan hizmetleri gösteren tablo