Aracılığıyla paylaş


Azure Spring Apps'te gelişmiş sorun giderme için JVM seçeneklerinin tanılama ayarlarını kullanma

Not

Azure Spring Apps, Azure Spring Cloud hizmetinin yeni adıdır. Hizmetin yeni bir adı olsa da, ekran görüntüleri, videolar ve diyagramlar gibi varlıkları güncelleştirmek için çalışırken bazı yerlerde eski adı bir süre görürsünüz.

Bu makale şunlar için geçerlidir: ✔️ Java ❌ C#

Bu makale şunlar için geçerlidir: ✔️ Temel/Standart ✔️ Kurumsal

Bu makalede, Azure Spring Apps'te gelişmiş sorun giderme gerçekleştirmek için JVM seçenekleri aracılığıyla tanılama ayarlarının nasıl kullanılacağı gösterilmektedir.

Yığın dökümü, Java Flight Recorder (JFR) ve çöp toplama (GC) günlükleriyle ilgili birkaç JVM tabanlı uygulama başlatma parametresi vardır. Azure Spring Apps'te JVM seçeneklerini kullanarak JVM yapılandırmasını destekliyoruz.

JVM tabanlı uygulama başlatma parametrelerini yapılandırma hakkında daha fazla bilgi için Azure CLI başvuru belgelerindeki az spring app deployment bölümüne bakın. Aşağıdaki bölümlerde parametresi için yararlı değerlerin birkaç örneği verilmiştir --jvm-options .

Önkoşullar

  • Dağıtılan bir Azure Spring Apps hizmet örneği. Başlamak için Azure CLI aracılığıyla uygulama dağıtma hızlı başlangıcımızı izleyin.
  • Hizmet örneğinizde en az bir uygulama zaten oluşturulmuştur.
  • Azure Spring Apps'te kendi kalıcı depolama alanınızı etkinleştirme bölümünde açıklandığı gibi kendi kalıcı depolama alanınız. Bu depolama, oluşturulan tanılama dosyalarını kaydetmek için kullanılır. Aşağıdaki parametre değerlerinde sağladığınız yollar, uygulamanıza bağlı kalıcı depolamanın bağlama yolu altında olmalıdır. Bağlama yolunun altında bir yol kullanmak istiyorsanız, alt yolu önceden oluşturduğunuzdan emin olun.

Bellek yetersiz olduğunda yığın dökümü oluşturma

Bellek yetersiz hatasıyla karşılaştığınızda yığın dökümü oluşturmak için aşağıdaki --jvm-options parametreyi kullanın.

--jvm-options="-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=<path-to-heap-dump-folder>"

Yığın dökümü klasörünün yolunu belirtmeye alternatif olarak, belirli bir dosya adı sağlayabilirsiniz. Ancak, bunun yerine bir klasör yolu sağlamanızı kesinlikle öneririz. Bir dosya adı sağlarsanız, komut HPROF dosya biçiminin sınırlamaları nedeniyle yalnızca ilk bellek dışı hata için bir yığın dökümü oluşturur. Bir klasör yolu sağlarsanız, her yetersiz bellek hatası için otomatik olarak oluşturulan ada sahip bir dosyada yığın dökümü alırsınız.

GC günlükleri oluşturma

GC günlüklerini oluşturmak için aşağıdaki --jvm-options parametreyi kullanın. Daha fazla bilgi için resmi JVM belgelerine bakın.

--jvm-options="-XX:+PrintGCDetails -Xloggc:<path-to-GC-log-file>"

Çıkışta JFR dosyası oluşturma

JFR dosyası oluşturmak için aşağıdaki --jvm-options parametreyi kullanın. Daha fazla bilgi için resmi JVM belgelerine bakın.

--jvm-options="-XX:StartFlightRecording=dumponexit=true,filename=<path-to-JFR-file>"

Oluşturulan dosyalar için yolu yapılandırma

Dosyalarınıza erişebildiğinizden emin olmak için, oluşturulan dosyanızın hedef yolunun uygulamanıza bağlı kalıcı depolama alanında olduğundan emin olun. Örneğin, Azure Spring Apps'te kalıcı depolama alanınızı oluştururken aşağıdaki örneğe benzer bir JSON kullanabilirsiniz.

    {
       "customPersistentDisks": [
          {
              "storageName": "<storage-resource-name>",
              "customPersistentDiskProperties": {
                  "type": "AzureFileVolume",
                  "shareName": "<azure-file-share-name>",
                  "mountPath": "<unique-mount-path>",
                  "mountOptions": [
                      "uid=0",
                      "gid=0"
                   ],
                   "readOnly": false
                }
          },
          {
              "storageName": "<storage-resource-name>",
              "customPersistentDiskProperties": {
                  "type": "AzureFileVolume",
                  "shareName": "<azure-file-share-name>",
                  "mountPath": "<unique-mount-path>",
                  "readOnly": true
              }
          }
       ]
    }

Alternatif olarak, kalıcı depolama alanına eklemek için aşağıdaki komutu kullanabilirsiniz.

az spring app append-persistent-storage \
    --resource-group <resource-group-name> \
    --service <Azure-Spring-Apps-instance-name> \
    --name <app-name> \
    --persistent-storage-type AzureFileVolume \
    --storage-name <storage-resource-name> \
    --share-name <azure-file-share-name> \
    --mount-path <unique-mount-path>

Sonraki adımlar