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>