Share via


Azure İzleyici Uygulama Analizler için Java Profil Oluşturucu

Not

Java Profiler özelliği 3.4.0 sürümünden itibaren önizleme aşamasındadır.

Application Analizler 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ış

Application Analizler Java profil oluşturucu, profil oluşturma verilerini kaydetmek için JVM tarafından sağlanan JFR profil oluşturucusunu 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 Uygulama Analizler 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ı ayarlama konusunda bkz . Profil İçeriğini Yapılandırma.

Ö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 . profil oluşturucuya genel bakış.

Application Analizler 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

Profil oluşturucu kullanıcı arabiriminde şimdi profil oluştur düğmesi bulunur (bkz. profil oluşturucu ayarları). Bu düğmenin seçilmesi, Uygulama Analizler ö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 Uygulama Analizler varsayılan CPU ve bellek SLA tetikleyicilerini uygular. Uygulamanız bu SLA'ları ihlal ettiğinde, Application Analizler Java profillerini toplar. Profil oluşturmayı daha sonra devre dışı bırakmak isterseniz, bunu Yükleme'de gösterilen tetikleyici menüsünden yapabilirsiniz.

CPU

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 yüzdesi, bölgenin mümkün olan en büyük boyutuna karşı geçerli Kiracılı bellek bölgesi (OldGen) doluluk oranıdır.

Kiracılı bir koleksiyon gerçekleştirildikten sonra doluluk değerlendirilir. Kiracılı bölgenin en büyük boyutu, Java Sanal Makinesi (JVM) yığınının en büyük boyutuna kadar büyümesi durumunda bu boyutun boyutudur.

Ö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'ını büyütebilir.
  • En büyük olası kiracı 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 süresi 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.

Screenshot of request trigger sample

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.

  1. Bir profilin toplanmasına neden olan kaynak eşiklerini yapılandırın:

    1. Uygulama Analizler örneğinin Performans -> Profil Oluşturucu bölümüne gidin. Screenshot of the link to open performance pane.Screenshot of the Profiler button from the Performance pane.

    2. "Tetikleyiciler" seçeneğini belirleyin

    3. Gerekli CPU, Bellek veya İstek tetikleyicilerini (etkinse) yapılandırın ve Uygula'yı seçin. Screenshot of trigger settings

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 tetiklendiğinde ve tamamlandığında, Performans -> Profil Oluşturucu bölümündeki Uygulama Analizler örneğinden gö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).

Screenshot of profiler page features and settings.

Yapılandırma

Eşikler ve profil oluşturma dönemleri gibi profil oluşturucu tetikleyici ayarlarının yapılandırması, Yükleme bölümünde açıklandığı gibi Uygulama Analizler kullanıcı arabiriminde Performans, Profil Oluşturucu, Tetikleyiciler kullanıcı arabirimi altında 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, ve dosyasının memoryTriggeredSettingscpuTriggeredSettings yolunu gerekli yapılandırmanızla birlikte sağlamak için .jfc öğesini değiştirin.

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.jfc kullanı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. profile.jfc JFR ile birlikte gelen jfc 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. profile.jfc JFR ile birlikte gelen jfc 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 profil oluşturmanın 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.

Sık sorulan sorular

Azure İzleyici Uygulaması Analizler Java Profili Oluşturma nedir?

Azure İzleyici Uygulaması Analizler Java profil oluşturucu, özelleştirilmiş bir yapılandırma kullanarak uygulamanızın profilini oluşturmak için Java Flight Recorder (JFR) kullanır.

Java Flight Recorder nedir?

Java Flight Recorder (JFR), çalışan bir Java uygulamasının profil oluşturma verilerini toplamaya yönelik bir araçtır. JFR, Java Sanal Makinesi (JVM) ile tümleşiktir ve performans sorunlarını gidermek için kullanılır. Java SE JFR Runtime hakkında daha fazla bilgi edinin.

Uygulama Analizler Java Profil oluşturma özelliğini etkinleştirmenin fiyat ve/veya lisans ücreti üzerindeki etkileri nedir?

Java Profil oluşturma, Uygulama Analizler ile ücretsiz bir özelliktir. Azure İzleyici Uygulama Analizler fiyatlandırması, alım maliyetini temel alır.

Hangi Java profil oluşturma bilgileri toplanır?

JFR tarafından toplanan profil oluşturma verileri şunları içerir: yöntem ve yürütme profil oluşturma verileri, çöp toplama verileri ve kilit profilleri.

Java Profil Oluşturma Analizler Uygulama'Analizler nasıl kullanabilirim ve verileri nasıl görselleştirebilirim?

JFR kaydı tercih ettiğiniz araçla görüntülenebilir ve analiz edilebilir, örneğin Java Mission Control (JMC).

Uygulama Analizler Java Profil Oluşturma ile performans tanılama ve düzeltme önerileri sağlanıyor mu?

'Performans tanılamaları ve öneriler', Uygulama Analizler Java Tanılaması olarak yakında kullanıma sunulan yeni bir özelliktir. Bu özelliği önizlemek için kaydolabilirsiniz. JFR kaydı Java Mission Control (JMC) ile görüntülenebilir.

App Analizler'da isteğe bağlı ve otomatik Java Profili Oluşturma arasındaki fark nedir?

İsteğe bağlı olarak, kullanıcı tarafından gerçek zamanlı olarak tetiklenen profil oluşturma, otomatik profil oluşturma ise önceden yapılandırılmış tetikleyicilerle birlikte gerçekleştirilir.

İsteğe bağlı profil oluşturma seçeneği için Şimdi ProfilLe seçeneğini kullanın. Profil Şimdi, Uygulama Analizler örneğine bağlı olan tüm aracıların profilini hemen oluşturur.

Otomatik profil oluşturma, kaynak eşiğinde bir ihlal tetikler.

Hangi Java profil oluşturma tetikleyicilerini yapılandırabilirim?

Uygulama Analizler Java Aracısı şu anda CPU ve bellek tüketiminin izlenmesini desteklemektedir. CPU eşiği, makinedeki tüm kullanılabilir çekirdeklerin yüzdesi olarak yapılandırılır. Bellek, bölgenin mümkün olan en büyük boyutuna karşı geçerli Tenured bellek bölgesi (OldGen) doluluğudur.

Java Profil oluşturmayı etkinleştirmek için gerekli önkoşullar nelerdir?

Bu makalenin en üstündeki Önkoşullar'a göz atın.

Mikro hizmetler uygulaması için Java Profil oluşturma kullanabilir miyim?

Evet, JFR kullanarak mikro hizmetler çalıştıran bir JVM'nin profilini oluşturabilirsiniz.