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