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

Önemli

Nisan 2026 Windows Server güncelleştirmesi ile birlikte windows'da yapılacak bir değişiklikte varsayılan Kerberos şifreleme türü RC4'ten AES-SHA1'e değiştirilmektedir.

AES-SHA1'e yükseltilmeyen FSLogix kapsayıcılarını barındıran dosya paylaşımlarında bu değişiklik uygulandıktan sonra erişim sorunları olabilir. Kesintiyi önlemek için güncelleştirmeyi yüklemeden önce AES-SHA1 yükseltme işlemini tamamlayın.

zaten AES-SHA1 yükseltmiş olan müşteriler etkilenmez.

Daha fazla bilgi için FSLogix blogu: Eylem gerekiyor: Windows Kerberos sağlamlaştırma (RC4) SMB depolamadaki FSLogix profillerini etkileyebilir.

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 örnek, önceki 30 güne ait VHD Disk Sıkıştırma olaylarını kılavuza biçimlendirilmiş olarak almak için PowerShell'i kullanı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 önce 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/Admin

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

Çıktının bir örneği aşağıda verilmişti:

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

Çıktının bir örneği aşağıda verilmişti:

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 kazanılmış 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 saniye eşiğini aşmaya neden olan Winlogon tüm hizmetleri görüntüler. Ortalama ve harcanan maksimum süreyle birlikte yineleme 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

Çıktının bir örneği aşağıda verilmişti:

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