Bagikan melalui


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:

Bagan batang memperlihatkan hasil menjalankan kueri Waktu yang Dihabiskan

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:

Bagan pai memperlihatkan jumlah file V H D (kontainer) yang dikompresi

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:

Tabel memperlihatkan layanan yang melebihi ambang Winlogon