Omówienie użycia i wydajności dysku VHD Disk Compaction
Możesz użyć dziennika zdarzeń systemu Windows, aby zrozumieć, jak często jest używany dysk VHD Compaction, miejsce zapisane i czas potrzebny na uruchomienie. Poniżej przedstawiono kilka przykładowych skryptów programu PowerShell i zapytań usługi Azure Log Analytics, których można użyć do interpretowania zdarzeń.
PowerShell
Skrypt metryk kompaktowania dysku VHD
W tym przykładzie użyto programu PowerShell do pobrania zdarzeń kompaktowania dysku VHD z poprzednich 30 dni sformatowanych w siatce. W wierszu polecenia programu PowerShell z podwyższonym poziomem uprawnień uruchom następujący blok kodu:
# 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
Zapytania usługi Azure Log Analytics
Ważne
Aby użyć poniższego zapytania, należy najpierw skonfigurować maszyny wirtualne w celu wysyłania dzienników zdarzeń do obszaru roboczego usługi Log Analytics. Aby uzyskać więcej informacji, zobacz Zbieranie źródeł danych dziennika zdarzeń systemu Windows za pomocą agenta usługi Log Analytics. Dzienniki używane do kompaktowania dysku VHD to:
- Microsoft-FSLogix-Apps/Operational
- Microsoft-FSLogix-Apps/Administracja
Zapytanie metryk kompaktowania dysku VHD
Czas spędzony podczas operacji VHD Disk Compact
Przedstawia średni, minimalny i maksymalny czas spędzony podczas operacji kompaktowej. Dane są podsumowywane na podstawie tego, czy dysk był w stanie zostać skompaktowany.
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
Poniżej przedstawiono przykładowe dane wyjściowe:
Liczba skompaktowanych plików VHD(x) kontenera
Przedstawia liczbę plików VHD(x) kontenera wybranych do kompaktowania na podstawie wartości progowych.
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
Poniżej przedstawiono przykładowe dane wyjściowe:
Łączna ilość miejsca do magazynowania
Przedstawia ilość miejsca w GB odzyskanego podczas operacji kompaktowania dysku VHD.
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"))
Ostrzeżenia dotyczące opóźnień w usłudze Winlogon (wylogowywanie)
Wyświetla dowolną usługę, która spowodowała Winlogon
przekroczenie progu 60 sekund. Przedstawia liczbę wystąpień wraz ze średnią i maksymalną ilością czasu spędzonego.
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
Poniżej przedstawiono przykładowe dane wyjściowe: