Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Uwaga
Plany Basic, Standardi Enterprise weszły w okres wycofywania 17 marca 2025 r. Aby uzyskać więcej informacji, zobacz ogłoszenie o wycofaniu usługi Azure Spring Apps.
Ten artykuł dotyczy:✅ Java ❎ C#
Ten artykuł dotyczy:✅ Podstawowa/Standardowa ✅ Enterprise
W tym artykule pokazano, jak używać ustawień diagnostycznych za pomocą opcji JVM do przeprowadzania zaawansowanego rozwiązywania problemów w usłudze Azure Spring Apps.
Istnieje kilka parametrów uruchamiania aplikacji JVM związanych z zrzutem sterty, Java Flight Recorder (JFR) i dziennikami zbierania odpadków (GC). W usłudze Azure Spring Apps obsługujemy konfigurację JVM przy użyciu opcji JVM.
Wymagania wstępne
- Wdrożone wystąpienie usługi Azure Spring Apps. Postępuj zgodnie z naszym szybkim startem dotyczącym wdrażania aplikacji za pośrednictwem Azure CLI, aby rozpocząć.
- Co najmniej jedna aplikacja została już utworzona w wystąpieniu usługi.
- Własny magazyn trwały zgodnie z opisem w temacie Jak włączyć własny magazyn trwały w usłudze Azure Spring Apps. Ten magazyn służy do zapisywania wygenerowanych plików diagnostycznych. Ścieżki podane w poniższych wartościach parametrów powinny znajdować się w ścieżce instalacji magazynu trwałego powiązanego z aplikacją. Jeśli chcesz użyć ścieżki pod ścieżką instalacji, pamiętaj, aby wcześniej utworzyć ścieżkę podrzędną.
Generowanie zrzutu sterty w przypadku braku pamięci
Użyj następującego --jvm-options parametru, aby wygenerować zrzut stert w przypadku wystąpienia błędu braku pamięci.
--jvm-options="-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=<path-to-heap-dump-folder>"
Alternatywnie do określenia ścieżki do folderu zrzutu sterty, możesz podać określoną nazwę pliku. Jednak zdecydowanie zalecamy podanie ścieżki folderu. Jeśli podasz nazwę pliku, polecenie wygeneruje zrzut sterty tylko dla pierwszego błędu braku pamięci z powodu ograniczeń formatu pliku HPROF. Jeśli podasz ścieżkę folderu, otrzymasz zrzut sterty w pliku z automatycznie wygenerowaną nazwą dla każdego błędu braku pamięci.
Generowanie dzienników GC
Użyj następującego --jvm-options parametru, aby wygenerować dzienniki GC. Aby uzyskać więcej informacji, zobacz oficjalną dokumentację JVM.
--jvm-options="-XX:+PrintGCDetails -Xloggc:<path-to-GC-log-file>"
Generowanie pliku JFR przy zamknięciu
Użyj następującego --jvm-options parametru, aby wygenerować plik JFR. Aby uzyskać więcej informacji, zobacz oficjalną dokumentację JVM.
--jvm-options="-XX:StartFlightRecording=dumponexit=true,filename=<path-to-JFR-file>"
Konfigurowanie ścieżki dla wygenerowanych plików
Aby mieć pewność, że masz dostęp do plików, upewnij się, że ścieżka docelowa wygenerowanego pliku znajduje się w trwałym magazynie powiązanym z aplikacją. Na przykład możesz użyć kodu JSON podobnego do poniższego przykładu podczas tworzenia magazynu trwałego w usłudze Azure Spring Apps.
{
"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
}
}
]
}
Alternatywnie możesz użyć następującego polecenia, aby dodać do pamięci trwałej.
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>