Cvičení – identifikace počítačů s vysokým využitím procesoru
V této části napíšete dotazy KQL, které načítají a transformují data z Perf
tabulky, abyste pochopili, které počítače dosáhly nebo se blíží jejich celkové výpočetní kapacitě a které počítače jsou nedostatečně spotřebované.
1. Nastavení cílů
Pokud chcete řešit problémy s výkonem, zmírnit potenciální problémy a identifikovat příležitosti k efektivnějšímu provozu, chcete analyzovat využití procesoru virtuálních počítačů ve vašem IT prostředí.
Pokud chcete identifikovat problémy s výkonem související s procesorem a příležitosti k efektivnějšímu fungování, potřebujete informace o:
- Trendy využití procesoru jednotlivých aktivních počítačů
- Využití procesoru počítačů ve špičce a klidu
2. Posouzení protokolů
Agenti pro Windows a Linux odesílají čítače výkonu hardwarových komponent, operačních systémů a aplikací spuštěných na monitorovaných počítačích do tabulky ve službě Perf
Azure Monitor.
Pojďme na tabulku spustit jednoduchý dotaz, Perf
který načte protokoly z posledních 24 hodin a získáme představu o schématu tabulky a datech, která tabulka obsahuje:
Kliknutím spustíte dotaz v ukázkové prostředí Log Analytics.
Perf // The table you’re querying
| where TimeGenerated > ago(1d) // Filters for entries generated in the past day
Vidíte, že sloupce TimeGenerated
, , Computer
, ObjectName
CounterName
InstanceName
a CounterValue
sloupce obsahují data, která jsou relevantní pro naši analýzu.
Ve ObjectName
sloupci jsou uvedeny názvy všech objektů, pro které Azure Monitor shromažďuje data z monitorovaných počítačů. Sloupec CounterName
obsahuje názvy různých čítačů výkonu, které Azure Monitor shromažďuje. Oba tyto sloupce obsahují velké množství hodnot, z nichž mnohé se zobrazují vícekrát. Abychom jasně viděli jedinečné hodnoty v těchto sloupcích a zjistili, které čítače jsou relevantní pro aktuální analýzu, spusťme tento dotaz:
Kliknutím spustíte dotaz v ukázkové prostředí Log Analytics.
Perf // The table you’re querying
| distinct ObjectName,CounterName // Lists distinct combinations of ObjectName and CounterName values
Tento snímek obrazovky ukazuje jedinečné kombinace ObjectName
a CounterName
hodnoty ve CounterName
sloupci za posledních 24 hodin:
% Processor Time
Čítač vám poskytne informace o využití procesoru nebo procesoru (CPU). To jsou informace, které potřebujete!
Pojďme posoudit, jak můžeme tato data používat a které operace KQL můžou pomoct extrahovat a transformovat data:
Sloupec | Popis | Cíl analýzy | Související operace KQL |
---|---|---|---|
TimeGenerated |
Označuje, kdy virtuální počítač vygeneroval každý protokol. | Definujte časový rozsah analýzy. | where TimeGenerated > ago(1d) Další informace naleznete v tématu ago() kde operátor a numerické operátory. |
Computer |
Počítač, ze kterého byla událost shromážděna. | Přidružte využití procesoru ke konkrétnímu počítači. | summarize... by Computer Další informace najdete v operátoru summarize. |
ObjectName |
Obsahuje názvy všech objektů, pro které tabulka uchovává údaje o výkonu. | Monitorujte výkon procesoru. | where ObjectName == "Processor" Další informace najdete v operátoru == (rovná se). |
CounterName |
Obsahuje názvy všech čítačů výkonu v tabulce. | Monitorujte čítač výkonu % Processor Time . |
where CounterName == "% Processor Time" Další informace naleznete v tématu, kde operátor a == (rovná se). |
InstanceName |
Zobrazí seznam monitorovaných instancí monitorovaného objektu. | Monitorujte všechna jádra procesoru. | where InstanceName == "_Total" Další informace naleznete v tématu, kde operátor a == (rovná se). |
CounterValue |
Měření shromážděné pro čítač. | Načtěte měření výkonu pro čítač výkonu % Processor Time . |
summarize min(CounterValue), avg(CounterValue), max(CounterValue), percentiles(CounterValue, 90,99) Další informace najdete v tématu operátor sumarizace a agregační funkce min(), max(), avg() a percentils(). |
3. Napište svůj dotaz.
Napište dotaz, který shrnuje průměrné, minimální a maximální využití procesoru všech počítačů za poslední den.
Načtěte všechny protokoly vygenerované za poslední den, které ohlásily čítač výkonu
% Processor Time
:Kliknutím spustíte dotaz v ukázkové prostředí Log Analytics.
Perf // The table you’re querying | where TimeGenerated > ago(1d) and ObjectName == "Processor" and CounterName == "% Processor Time" and InstanceName == "_Total" // Filters for entries generated in the past day related to total processor time measurements
Tento dotaz načte všechny protokoly související s celkovým měřením času procesoru z posledního dne.
Vyhledejte minimální, maximální a průměrné hodnoty čítače a vypočítejte hodnoty 90. a 99. percentilu pro každý počítač:
Kliknutím spustíte dotaz v ukázkové prostředí Log Analytics.
Perf // The table you’re querying | where TimeGenerated > ago(1d) and ObjectName == "Processor" and CounterName == "% Processor Time" and InstanceName == "_Total" // Filters for entries generated in the past day related to total processor time measurements | summarize min(CounterValue), avg(CounterValue), max(CounterValue), percentiles(CounterValue, 90,99) by Computer // Presents the minimum, maximum, average, 90th and 99th percentile counter values for each computer
Sada výsledků tohoto dotazu zobrazuje minimální, maximální, průměrnou, 90. a 99. hodnotu čítače percentilu
% Processor Time
pro každý počítač, pro který jsou data v pracovním prostoru služby Log Analytics.Vyfiltrujte výsledky dotazu pro položky, ve kterých
% Processor Time
je hodnota čítače vyšší než 80 v rozsahu 90. a 99. percentilu:Kliknutím spustíte dotaz v ukázkové prostředí Log Analytics.
Perf // The table you’re querying | where TimeGenerated > ago(1d) and ObjectName == "Processor" and CounterName == "% Processor Time" and InstanceName == "_Total" // Filters for entries generated in the past day related to total processor time measurements | summarize min(CounterValue), avg(CounterValue), max(CounterValue), percentiles(CounterValue, 90,99) by Computer // Presents the minimum, maximum, average, 90th and 99th percentile counter values for each computer | where percentile_CounterValue_90 > 80 and percentile_CounterValue_99 > 80 // Filters previous query results for instances where the 90th and 99th percentile counters are higher than 80
Sada výsledků tohoto dotazu se skládá ze všech počítačů, pro které je 10 % a 15 %
% Processor Time
hodnot více než 80.
Výzva: Přidání informací o operačním systému z tabulky Prezenčních signálů do výsledků dotazu
Výsledky dotazu můžete často lépe pochopit korelací informací z jiné tabulky s výsledky dotazu pomocí operátoru join
. Další informace naleznete v tématu operátor join.
Můžete pomocí operátoru join
přidat informace o operačním systému spuštěném na každém počítači, který je k dispozici v Heartbeat
tabulce, jak jsme viděli v prvním cvičení?
Řešení:
Přidejte informace z
Heartbeat
tabulky o operačním systému spuštěném na každém počítači ve výsledcích dotazu:Kliknutím spustíte dotaz v ukázkové prostředí Log Analytics.
Perf // The table you’re querying | where TimeGenerated > ago(1d) and ObjectName == "Processor" and CounterName == "% Processor Time" and InstanceName == "_Total" // Filters for entries generated in the past day related to total processor time measurements | summarize min(CounterValue), avg(CounterValue), max(CounterValue), percentiles(CounterValue, 90,99) by Computer // Presents the minimum, maximum, average, 90th and 99th percentile counter values for each computer | where percentile_CounterValue_90 > 80 and percentile_CounterValue_99 > 80 // Filters previous query results for instances where the 90th and 99th percentile counters are higher than 50 | join kind=inner (Heartbeat // Introduces data from the "Heartbeat" table to the previous query results | where TimeGenerated > ago(1d) // Time range for the data added from the "Heartbeat" table | distinct Computer, OSType) on Computer // Adds distinct combinations of computer and operating system
Tato iterace dotazu přidá
Computer
sloupce zOSType
Heartbeat
tabulky do výsledků předchozího dotazu.Sloupec
Computer
se teď ve výsledcích dotazu zobrazí dvakrát – jednou z dotazu vPerf
tabulce a jednou z dotazu vHeartbeat
tabulce. SloupecComputer
zHeartbeat
tabulky byl přejmenovánComputer1
, ale dvě tabulky obsahují identická data. Obě sloupce umožňují korelaci výsledků ze dvou tabulek, ale duplicitní sloupec teď můžete filtrovat.Computer1
Odeberte sloupec z výsledků dotazu:Kliknutím spustíte dotaz v ukázkové prostředí Log Analytics.
Perf // The table you’re querying | where TimeGenerated > ago(1d) and ObjectName == "Processor" and CounterName == "% Processor Time" and InstanceName == "_Total" // Filters for entries generated in the past day related to total processor time measurements | summarize min(CounterValue), avg(CounterValue), max(CounterValue), percentiles(CounterValue, 90,99) by Computer // Presents the minimum, maximum, average, 90th and 99th percentile counter values for each computer | where percentile_CounterValue_90 > 80 and percentile_CounterValue_99 > 80 // Filters previous query results for instances where the 90th and 99th percentile counters are higher than 50 | join kind=inner (Heartbeat // Introduces data from the "Heartbeat" table to the previous query results | where TimeGenerated > ago(1d) // Time range for the data added from the "Heartbeat" table | distinct Computer, OSType) on Computer // Adds distinct combinations of computer and operating system | project-away Computer1 // Removes the "Computer1" column from the query results
Sada výsledků tohoto dotazu obsahuje seznam všech počítačů, které dosáhly plné kapacity procesoru, a operačního systému spuštěného na každém počítači, což bude užitečné pro další analýzu.