Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Not
Java Profiler özelliği 3.4.0 sürümünden itibaren önizleme aşamasındadır.
Java Profiler aşağıdakiler için bir sistem sağlar:
- Java Sanal Makinesi'nden (JVM) isteğe bağlı olarak JDK Flight Recorder (JFR) profilleri oluşturma.
- JVM'den belirli tetikleyici koşulları karşılandığında (CPU veya bellek yapılandırılmış eşiği ihlal etme gibi) JFR profillerini otomatik olarak oluşturma.
Genel bakış
Java Profiler, profil oluşturma verilerini kaydetmek için JVM tarafından sağlanan JFR profil oluşturucuyu kullanarak kullanıcıların JFR kayıtlarını daha sonra indirmesine ve performans sorunlarının nedenini belirlemek üzere analiz etmelerine olanak sağlar.
Bu veriler, tetikleyici koşulları karşılandığında isteğe bağlı olarak toplanır. Kullanılabilir tetikleyiciler CPU kullanımı, Bellek tüketimi ve İstek (hizmet düzeyi sözleşme tetikleyicileri) üzerindeki eşiklerdir. İstek tetikleyicileri OpenTelemetry tarafından oluşturulan Spans'ı izler ve kullanıcının bu Span'lar süresince hizmet düzeyi sözleşmesi (SLA) gereksinimlerini yapılandırmasına olanak tanır.
Bir eşiğe ulaşıldığında, yapılandırılan tür ve sürenin profili toplanır ve karşıya yüklenir. Bu profil daha sonra ilişkili Application Insights Portalı kullanıcı arabiriminin performans bölmesinde görünür.
Uyarı
JFR profil oluşturucu varsayılan olarak "profile-without-env-data" profilini yürütür. JFR dosyası, JVM tarafından yayılan bir dizi olaydır. "Profile-without-env-data" yapılandırması, JVM ile birlikte gelen "profil" yapılandırmasına benzer, ancak ortam değişkenleri, JVM'ye sağlanan bağımsız değişkenler ve sistemde çalışan işlemler gibi hassas dağıtım bilgilerini içerme olasılığı olan bazı olaylar devre dışı bırakılmıştır.
Artık kullanılabilir olmayan bayraklar şunlardır:
- jdk. JVMInformation
- jdk. InitialSystemProperty
- jdk.OSInformation
- jdk.InitialEnvironmentVariable
- jdk. SystemProcess
Ancak, profillerin hassas veriler içermediğinden emin olmak için tüm etkin bayrakları gözden geçirmeniz gerekir.
Özel profil oluşturucu yapılandırmasını ayarlama hakkında bilgi için Profil İçeriklerini Yapılandırma bölümüne bakın.
Önkoşullar
Java Flight Recorder (JFR) özelliğine sahip JVM
- Java 8 güncelleştirme 262+
- Java 11+
Uyarı
OpenJ9 JVM desteklenmiyor
Kullanım
Tetikleyiciler
Kullanılabilir çeşitli tetikleyicilerin daha ayrıntılı açıklaması için bkz . .NET için Application Insights Profiler ile Azure'da üretim uygulamalarının profilini oluşturma.
ApplicationInsights Java Aracısı, bir iş işlemi gibi CPU, bellek ve istek süresini izler. Yapılandırılmış bir eşiği ihlal ederse bir profil tetiklenir.
Şimdi profil oluşturma
Şimdi profil oluştur düğmesi profil oluşturucu kullanıcı arabiriminde bulunur (bkz. .NET için Application Insights Profiler'ı yapılandırma). Bu düğme seçildiğinde, Application Insights örneğine bağlı tüm aracılarda hemen bir profil istenir. Varsayılan profil oluşturma süresi iki dakikadır. Geçersiz kılarak periodicRecordingDurationSeconds değiştirebilirsiniz (bkz . Yapılandırma dosyası).
Uyarı
Profili çağırmak artık profil oluşturucu özelliğini etkinleştirir ve Application Insights varsayılan CPU ve bellek SLA tetikleyicilerini uygular. Uygulamanız bu SLA'ları ihlal ettiğinde Application Insights Java profillerini toplar. Profil oluşturmayı daha sonra devre dışı bırakmak isterseniz, bunu Yükleme'de gösterilen tetikleyici menüsünden yapabilirsiniz.
İşlemci
CPU eşiği, sistemdeki tüm kullanılabilir çekirdeklerin kullanım yüzdesidir.
Örneğin, sekiz çekirdekli bir makinenin bir çekirdeği doygunluğa sahipse CPU yüzdesi %12,5 olarak kabul edilir.
Bellek
Bellek kullanım yüzdesi, bölgenin mümkün olan en büyük boyutuna karşı Tenure bellek bölgesi (OldGen) mevcut doluluk oranını temsil eder.
Kiracılı bir koleksiyon gerçekleştirildikten sonra doluluk değerlendirilir. Kiracılı bölgenin maksimum boyutu, Java Sanal Makinesi (JVM) yığını maksimum boyutuna ulaştığında sahip olacağı boyuttur.
Örneğin, aşağıdaki senaryoyu inceleyin:
- Java yığını en fazla 1.024 MB'a kadar büyüyebilir.
- Tenured Generation, yığının %90'ına kadar büyüyebilir.
- Maksimum olası tenured belleği boyutu 922 MB olacaktır.
- Eşiğiniz kullanıcı arabirimi aracılığıyla %75 olarak ayarlandı, bu nedenle eşiğiniz 922 mb,691 MB'ın %75'i olur.
Bu senaryoda, aşağıdaki durumlarda bir profil oluşur:
- Tam çöp toplama işlemi yürütülür
- Tenured bölgelerin doluluk oranı, koleksiyondan sonra 691 mb'ın üzerindedir.
İstek
SLA tetikleyicileri OpenTelemetry'yi temel alır ve belirli ölçütler karşılanırsa bir profil başlatır.
Her bir tetikleyici yapılandırması aşağıdaki gibi oluşturulur:
-
Name- Tetikleyici için benzersiz bir tanımlayıcı. -
Filter- Tetikleyici için ilgi çekici istekleri filtreler. -
Aggregation- Belirli bir eşiği ihlal eden isteklerin oranını hesaplar.-
Threshold- İstek ihlalinin oluştuğu belirlenen en düşük değer (milisaniye cinsinden). -
Minimum samples- Toplamanın veri üretmesi için toplanması gereken en az örnek sayısıdır, bu ayar küçük örnek boyutlarının tetiklenmesini önlemektir. -
Window- Sıralı zaman penceresi (milisaniye cinsinden).
-
-
Threshold- Toplama çıkışına uygulanan eşik değeri (yüzde). Bu değer aşılırsa bir profil başlatılır.
Örneğin, aşağıdaki senaryo belirli bir uç noktaya (/users/.*) yönelik isteklerin %75'inden fazlası, en az 100 örnek toplandığında 60 saniyelik bir pencere içinde 30 ms'den uzun sürerse bir profili tetikler.
Yükleme
Aşağıdaki adımlar, aracıda profil oluşturma bileşenini etkinleştirme ve ihlal edilmesi durumunda bir profili tetikleyen kaynak sınırlarını yapılandırma konusunda size yol gösterir.
Bir profilin toplanmasına neden olan kaynak eşiklerini yapılandırın:
Uyarı
Sağ alttaki Profiler izlemeleri düğmesi Java için desteklenmez.
Tetikleyiciler'i seçin
Gerekli CPU, Bellek veya İstek tetikleyicilerini (etkinse) yapılandırın ve Uygula'yı seçin.
Uyarı
Java Profil Oluşturucu "Örnekleme" tetikleyicisini desteklemez. Bunu yapılandırmanın hiçbir etkisi olmayacaktır.
Bu adımlar tamamlandıktan sonra aracı işleminizin kaynak kullanımını izler ve eşik aşıldığında bir profil tetikler. Bir profil tetiklenip tamamlandığında, Performansgörüntülenebilir. Bu ekrandan profil indirilebilir, JFR kayıt dosyası indirildikten sonra seçtiğiniz bir araçta açılabilir ve analiz edilebilir, örneğin Oracle JDK Mission Control (JMC).
Yapılandırma
Eşikler ve profil oluşturma dönemleri gibi Java Profil Oluşturucu tetikleyici ayarlarının yapılandırması, Application Insights kullanıcı arabiriminde Performans>Yükleme bölümünde açıklandığı gibi ayarlanır.
Ayrıca, ortam değişkenleri ve applicationinsights.json yapılandırma dosyası kullanılarak birçok parametre yapılandırılabilir.
Profil İçeriğini Yapılandırma
Özel profil yapılandırması sağlamak istiyorsanız, memoryTriggeredSettings ve cpuTriggeredSettings öğelerini değiştirerek gerekli yapılandırmanızla birlikte bir .jfc dosyasının yolunu sağlayın.
Profiller, menü altındaki Window->Flight Recording Template Manager JDK Mission Control (JMC) kullanıcı arabiriminde oluşturulabilir/düzenlenebilir ve bu kullanıcı arabiriminin içinde Edit->Advanced tek tek bayraklar üzerinde denetim bulunur.
Ortam değişkenleri
APPLICATIONINSIGHTS_PREVIEW_PROFILER_ENABLED: boolean (varsayılan:true)Profil oluşturma özelliğini etkinleştirir/devre dışı bırakır. Varsayılan olarak özellik aracı içinde etkinleştirilir (aracı 3.4.9'dan itibaren). Ancak, bu özellik aracı içinde etkinleştirilmiş olsa da, Yükleme bölümünde açıklandığı gibi portalda etkinleştirilmediği sürece profiller toplanmaz.
Yapılandırma dosyası
Örnek yapılandırma:
{
"preview": {
"profiler": {
"enabled": true,
"cpuTriggeredSettings": "profile-without-env-data",
"memoryTriggeredSettings": "profile-without-env-data",
"manualTriggeredSettings": "profile-without-env-data",
"enableRequestTriggering": true,
"periodicRecordingDurationSeconds": 60
}
}
}
memoryTriggeredSettings Bu yapılandırma, bir bellek profili istenirse kullanılır.
Bu değer aşağıdakilerden biri olabilir:
-
profile-without-env-data(varsayılan değer). Belirli hassas olayları devre dışı bırakmış bir profil, ayrıntılar için Uyarı bölümüne bakın. -
profile. JFR ile birlikte gelen yapılandırmayıprofile.jfckullanır. - Dosya sistemindeki özel bir jfc yapılandırma dosyasının yolu, örneğin,
/tmp/myconfig.jfc.
cpuTriggeredSettings Bu yapılandırma, bir CPU profili istenirse kullanılır.
Bu değer aşağıdakilerden biri olabilir:
-
profile-without-env-data(varsayılan değer). Belirli hassas olayları devre dışı bırakmış bir profil, ayrıntılar için Uyarı bölümüne bakın. -
profile. JFR ile birlikte temin edilenprofile.jfcjfc yapılandırmasını kullanır. - Dosya sistemindeki özel bir jfc yapılandırma dosyasının yolu, örneğin,
/tmp/myconfig.jfc.
manualTriggeredSettings El ile profil istenirse bu yapılandırma kullanılır.
Bu değer aşağıdakilerden biri olabilir:
-
profile-without-env-data(varsayılan değer). Belirli hassas olayları devre dışı bırakmış bir profil, ayrıntılar için Uyarı bölümüne bakın. -
profile. JFR ile birlikte temin edilenprofile.jfcjfc yapılandırmasını kullanır. - Dosya sistemindeki özel bir jfc yapılandırma dosyasının yolu, örneğin,
/tmp/myconfig.jfc.
enableRequestTriggering JFR profillemenin istek yapılandırmasına göre tetiklenip tetiklenmeyeceği.
Bu değer aşağıdakilerden biri olabilir:
-
trueİstek tetikleyici eşiği ihlal edilirse profil oluşturma tetikleniyor. -
false(varsayılan değer). İstek yapılandırması profil oluşturmayı tetiklemez.
periodicRecordingDurationSecondsŞimdi profil oluştur düğmesi kullanılarak profil oluşturma oturumu başlatıldığında saniye cinsinden profil oluşturma kaydı süresi. Varsayılan değer şudur: 120.
Sonraki Adımlar
- Sık sorulan soruları (SSS) gözden geçirmek için bkz. Java Profiler SSS