Alıştırma - Yüksek CPU kullanımına sahip makineleri tanımlama
Burada tablodaki Perf
verileri almak ve dönüştürmek için KQL sorguları yazarak toplam işlem kapasitesine hangi makinelerin ulaştığını veya yaklaştığını ve hangi makinelerin yetersiz kullanılıp kullanılmadığını anlayacaksınız.
1. Hedefleri belirleme
Performans sorunlarını gidermek, olası sorunları azaltmak ve daha verimli çalışma fırsatlarını belirlemek için, BT ortamınızdaki sanal makinelerin merkezi işlem birimi (CPU) kullanımını analiz etmek istiyorsunuz.
CPU ile ilgili performans sorunlarını ve daha verimli hale gelme fırsatlarını belirlemek için aşağıdakiler hakkında bilgi almanız gerekir:
- Her etkin makinenin CPU kullanım eğilimleri.
- Makinelerin yoğun ve sessiz zamanlarda CPU kullanımı.
2. Günlükleri değerlendirme
Windows ve Linux aracıları, izlenen makinelerde çalışan donanım bileşenlerinin, işletim sistemlerinin ve uygulamaların performans sayaçlarını Azure İzleyici'deki tabloya Perf
gönderir.
Şimdi son 24 saat içindeki Perf
günlükleri almak için tabloda basit bir sorgu çalıştıralım ve tablo şemasını ve tablonun tuttuğu verileri algılayalım:
Log Analytics tanıtım ortamında sorgu çalıştırmak için tıklayın
Perf // The table you’re querying
| where TimeGenerated > ago(1d) // Filters for entries generated in the past day
, , Computer
, , ObjectName
CounterName
, InstanceName
ve CounterValue
sütunlarının TimeGenerated
çözümlememizle ilgili verileri barındırdığını görebilirsiniz.
sütunu, ObjectName
Azure İzleyici'nin izlenen makinelerden veri topladığı tüm nesnelerin adlarını listeler. sütunu, CounterName
Azure İzleyici'nin topladığı çeşitli performans sayaçlarının adlarını tutar. Bu sütunların her ikisi de birçok değer içerir ve bunların çoğu birden çok kez görünür. Bu sütunlardaki ayrı değerleri net bir şekilde görmek ve geçerli çözümlemeyle ilgili sayaçları belirlemek için şu sorguyu çalıştıralım:
Log Analytics tanıtım ortamında sorgu çalıştırmak için tıklayın
Perf // The table you’re querying
| distinct ObjectName,CounterName // Lists distinct combinations of ObjectName and CounterName values
Bu ekran görüntüsünde, son 24 saat içinde sütundaki CounterName
ve CounterName
değerlerinin farklı birleşimleri ObjectName
gösterilmektedir:
Sayaç % Processor Time
, işlemcinin veya Merkezi İşlem Birimi'nin (CPU) kullanımını anlamanızı sağlar. Bu, ihtiyacınız olan bilgilerdir!
Şimdi bu verileri nasıl kullanabileceğimizi ve hangi KQL işlemlerinin verileri ayıklamaya ve dönüştürmeye yardımcı olabileceğini değerlendirelim:
Sütun | Açıklama | Analiz hedefi | İlgili KQL işlemleri |
---|---|---|---|
TimeGenerated |
Sanal makinenin her bir günlüğü ne zaman ürettiğini gösterir. | Analizin zaman kapsamını tanımlayın. | where TimeGenerated > ago(1d) Daha fazla bilgi için bkz . ago(), where işleci ve Sayısal işleçler. |
Computer |
Olayın toplandığı bilgisayar. | CPU kullanımını belirli bir bilgisayarla ilişkilendirin. | summarize... by Computer Daha fazla bilgi için bkz . summarize işleci. |
ObjectName |
Tablonun performans verilerini barındırdığı tüm nesnelerin adlarını tutar. | İşlemcinin performansını izleyin. | where ObjectName == "Processor" Daha fazla bilgi için bkz . == (eşittir) işleci. |
CounterName |
Tablodaki tüm performans sayaçlarının adlarını tutar. | Performans sayacını % Processor Time izleyin. |
where CounterName == "% Processor Time" Daha fazla bilgi için bkz . where işleci ve == (eşittir) işleci. |
InstanceName |
İzlenen nesnenin izlenen örneklerini listeler. | Tüm işlemci çekirdeklerini izleyin. | where InstanceName == "_Total" Daha fazla bilgi için bkz . where işleci ve == (eşittir) işleci. |
CounterValue |
Sayaç için toplanan ölçüm. | Performans sayacı için % Processor Time performans ölçümlerini alın. |
summarize min(CounterValue), avg(CounterValue), max(CounterValue), percentiles(CounterValue, 90,99) Daha fazla bilgi için bkz . summarize işleci ve min(), max(), avg()ve percentiles() toplama işlevleri. |
3. Sorgunuzu yazın
Son gün içindeki tüm makinelerin ortalama, en düşük ve en yüksek CPU kullanımını özetleyen bir sorgu yazın.
Geçmiş günde oluşturulan ve performans sayacını
% Processor Time
bildiren tüm günlükleri alın:Log Analytics tanıtım ortamında sorgu çalıştırmak için tıklayın.
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
Bu sorgu, geçmiş güne ait toplam işlemci zamanı ölçümleriyle ilgili tüm günlükleri alır.
En düşük, en yüksek ve ortalama sayaç değerlerini bulun ve her bilgisayar için 90. ve 99. yüzdebirlik sayaç değerlerini hesaplayın:
Log Analytics tanıtım ortamında sorgu çalıştırmak için tıklayın
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
Bu sorgunun sonuç kümesi, Log Analytics çalışma alanınızda veri bulunan her bilgisayar için en düşük, en yüksek, ortalama, 90. ve 99. yüzdebirlik
% Processor Time
sayaç değerlerini gösterir.Sayaç değerinin 90. ve 99. yüzdebirlik aralığında 80'den yüksek olduğu
% Processor Time
girdiler için sorgu sonuçlarını filtreleyin:Log Analytics tanıtım ortamında sorgu çalıştırmak için tıklayın
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
Bu sorgunun sonuç kümesi, ilk %10 ve %
% Processor Time
15 değerlerinin 80'in üzerinde olduğu tüm bilgisayarlardan oluşur.
Sınama: Sinyal tablosundaki işletim sistemi bilgilerini sorgu sonuçlarına ekleme
Genellikle işlecini kullanarak join
farklı bir tablodaki bilgileri sorgu sonuçlarınızla ilişkilendirerek sorgu sonuçlarınızı daha iyi anlayabilirsiniz. Daha fazla bilgi için bkz . join işleci.
İlk alıştırmada join
gördüğümüz gibi, her bilgisayarda çalışan ve tabloda bulunan Heartbeat
işletim sistemi hakkında bilgi eklemek için işlecini kullanabilir misiniz?
Çözüm:
Sorgu sonuçlarınızdaki
Heartbeat
bilgisayarların her birinde çalışan işletim sistemi hakkında tablodan bilgi ekleyin:Log Analytics tanıtım ortamında sorgu çalıştırmak için tıklayın
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
Sorgunun bu yinelemesi, tablodaki
Computer
veOSType
sütunlarınıHeartbeat
önceki sorgu sonuçlarına ekler.Sütun
Computer
şimdi sorgu sonuçlarında iki kez görünür: bir kez tablodakiPerf
sorgudan ve bir kez de tablodakiHeartbeat
sorgudan.Computer
TablodakiHeartbeat
sütun olarak yeniden adlandırıldıComputer1
, ancak iki tablo aynı verileri içeriyor. Her iki sütunun da olması, iki tablodan gelen sonuçların bağıntısını sağlar, ancak artık yinelenen sütunu filtreleyebilirsiniz.Computer1
Sütunu sorgu sonuçlarından kaldırın:Log Analytics tanıtım ortamında sorgu çalıştırmak için tıklayın
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
Bu sorgunun sonuç kümesi, tam CPU kapasitesine ulaşan tüm bilgisayarları ve her bilgisayarda çalışan işletim sistemini listeler. Bu, daha fazla analiz için yararlı olacaktır.