Memahami penggunaan dan performa Pemadatan Disk VHD
Anda dapat menggunakan Log Peristiwa Windows untuk memahami seberapa sering Pemadatan Disk VHD digunakan, ruang yang disimpan, dan waktu yang diperlukan untuk berjalan. Berikut adalah beberapa contoh skrip PowerShell dan kueri Azure Log Analytics yang dapat Anda gunakan untuk membantu Anda menginterpretasikan peristiwa.
PowerShell
Skrip metrik Pemadatan Disk VHD
Contoh ini menggunakan PowerShell untuk mendapatkan peristiwa Pemadatan Disk VHD dari 30 hari sebelumnya, yang diformat menjadi kisi. Dari prompt PowerShell yang ditingkatkan, jalankan blok kode berikut:
# 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
Kueri Analitik Log Azure
Penting
Untuk menggunakan kueri di bawah ini, Anda harus mengonfigurasi komputer virtual terlebih dahulu untuk mengirim log peristiwa mereka ke ruang kerja Analitik Log. Untuk informasi selengkapnya, lihat Mengumpulkan sumber data log peristiwa Windows dengan agen Log Analytics. Log yang digunakan untuk Pemadatan Disk VHD adalah:
- Microsoft-FSLogix-Apps/Operational
- Microsoft-FSLogix-Apps/Admin
Kueri metrik Pemadatan Disk VHD
Waktu yang dihabiskan selama operasi VHD Disk Compact
Menampilkan waktu rata-rata, minimum, dan maksimum yang dihabiskan selama operasi ringkas. Data dirangkum berdasarkan apakah disk dapat dikompresi.
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
Berikut adalah contoh output-nya:
Jumlah file VHD(x) kontainer yang dikompresi
Menampilkan berapa banyak file VHD(x) kontainer yang dipilih untuk pemadatan berdasarkan nilai ambang batas.
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
Berikut adalah contoh output-nya:
Total ruang penyimpanan yang disimpan
Menampilkan jumlah penyimpanan dalam GB yang diklaim kembali selama operasi Pemadatan Disk 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"))
Peringatan penundaan Winlogon (keluar)
Menampilkan layanan apa pun yang menyebabkan Winlogon
melebihi ambang batas 60 detik. Menunjukkan jumlah kemunculan bersama dengan waktu rata-rata dan maksimum yang dihabiskan.
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
Berikut adalah contoh output-nya: