A JVM diagnosztikai beállításainak használata az Azure Spring Apps speciális hibaelhárításához

Feljegyzés

Az Azure Spring Apps az Azure Spring Cloud szolgáltatás új neve. Bár a szolgáltatásnak új neve van, bizonyos helyeken a régi nevet fogja látni egy darabig, miközben az eszközök, például képernyőképek, videók és diagramok frissítésével dolgozunk.

Ez a cikk a következőre vonatkozik: ✔️ Java ❌ C#

Ez a cikk a következőre vonatkozik: ✔️ Basic/Standard ✔️ Enterprise

Ez a cikk bemutatja, hogyan használhat diagnosztikai beállításokat JVM-beállításokon keresztül az Azure Spring Appsben végzett speciális hibaelhárításhoz.

Számos JVM-alapú alkalmazásindítási paraméter kapcsolódik a halomképhez, a Java Flight Recorderhez (JFR) és a szemétgyűjtési (GC) naplókhoz. Az Azure Spring Appsben JVM-beállítások használatával támogatjuk a JVM-konfigurációt.

A JVM-alapú alkalmazásindítási paraméterek konfigurálásáról az Azure CLI referenciadokumentációjában talál további információt az az spring-alkalmazás üzembe helyezéséről . A következő szakaszok számos példát mutatnak be a --jvm-options paraméter hasznos értékeire.

Előfeltételek

  • Üzembe helyezett Azure Spring Apps-szolgáltatáspéldány. Az első lépésekhez kövesse az alkalmazások Azure CLI-n keresztüli üzembe helyezéséről szóló rövid útmutatót.
  • Legalább egy már létrehozott alkalmazás a szolgáltatáspéldányban.
  • Saját állandó tárterülete az Azure Spring Appsben a saját állandó tárterület engedélyezésének módjában leírtak szerint. Ez a tároló a létrehozott diagnosztikai fájlok mentésére szolgál. Az alábbi paraméterértékekben megadott elérési utaknak az alkalmazáshoz kötött állandó tár csatlakoztatási útvonala alatt kell lenniük. Ha egy elérési utat szeretne használni a csatlakoztatási útvonal alatt, mindenképpen előbb hozza létre a segédútvonalat.

Halomkép létrehozása memóriakihasználtság esetén

A következő --jvm-options paraméterrel halomképet hozhat létre, ha memóriakihasználtságú hibát tapasztal.

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

A halom memóriakép mappájának elérési útjának megadása helyett megadhat egy adott fájlnevet. Javasoljuk azonban, hogy inkább adjon meg egy mappa elérési útját. Ha megad egy fájlnevet, a parancs csak az első memóriakihasznált hiba halomképét hozza létre a HPROF fájlformátum korlátozásai miatt. Ha megadja a mappa elérési útját, egy halomképet fog kapni egy fájlban, amely automatikusan generált nevet ad minden memóriakihasznált hiba esetén.

GC-naplók létrehozása

A GC-naplók létrehozásához használja az alábbi --jvm-options paramétert. További információ: A JVM hivatalos dokumentációja.

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

JFR-fájl létrehozása kilépéskor

JFR-fájl létrehozásához használja az alábbi --jvm-options paramétert. További információ: A JVM hivatalos dokumentációja.

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

A létrehozott fájlok elérési útjának konfigurálása

A fájlok eléréséhez győződjön meg arról, hogy a létrehozott fájl célútvonala az alkalmazáshoz kötött állandó tárterületen található. Használhatja például az alábbi példához hasonló JSON-t, ha az Azure Spring Appsben hozza létre az állandó tárterületet.

    {
       "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
              }
          }
       ]
    }

Másik lehetőségként használhatja az alábbi parancsot az állandó tárterülethez való hozzáfűzéshez.

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>

Következő lépések