Задание параметров диагностики с помощью значений для параметров виртуальной машины Java для устранения неполадок в Azure Spring Apps
Примечание.
Планы "Базовый", "Стандартный" и "Корпоративный" будут устарели начиная с середины марта 2025 г. с 3-летнего периода выхода на пенсию. Рекомендуется перейти в приложения контейнеров Azure. Дополнительные сведения см. в объявлении о выходе на пенсию в Azure Spring Apps.
Стандартный план потребления и выделенного плана будет устарел с 30 сентября 2024 г. с полным завершением работы после шести месяцев. Рекомендуется перейти в приложения контейнеров Azure. Дополнительные сведения см. в статье "Миграция потребления Azure Spring Apps Standard" и выделенного плана в приложения контейнеров Azure.
Эта статья относится к:✅ Java ❎ C#
Эта статья относится к:✅ Basic/Standard ✅ Enterprise
В этой статье показано, как задать параметры диагностики с помощью значений для параметров виртуальной машины Java, чтобы устранить неполадки в Azure Spring Apps.
Существует несколько параметров запуска приложения на основе виртуальной машины Java, связанных с дампом кучи, журналами JFR и сборкой мусора. В Azure Spring Apps настройку виртуальной машины Java можно задать с помощью ее параметров.
Дополнительные сведения о настройке параметров запуска приложения на основе виртуальной машины Java см. в справочной документации по Azure CLI в разделе az spring app deployment. В следующих разделах приведено несколько примеров того, какие значения можно задать для параметра --jvm-options
.
Необходимые компоненты
- Развернутый экземпляр службы Azure Spring Apps. Чтобы приступить к работе, следуйте инструкциям статьи Краткое руководство. Запуск приложения Java Spring с помощью Azure CLI.
- По крайней мере одно приложение, ранее созданное в этом экземпляре службы.
- Собственное постоянное хранилище, как описано в разделе Как включить собственное постоянное хранилище в Azure Spring Apps. Это хранилище используется для сохранения созданных диагностических файлов. Пути, которые вы указываете в приведенных ниже значениях параметров, должны находиться под путем подключения постоянного хранилища, привязанного к приложению. Чтобы использовать путь под путем подключения, нужно заранее создать вложенный путь.
Создание дампа кучи при нехватке памяти
Используйте следующий параметр --jvm-options
, чтобы создать дамп кучи при возникновении ошибки нехватки памяти.
--jvm-options="-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=<path-to-heap-dump-folder>"
Вместо указания пути к папке дампа кучи можно указать имя файла. Однако мы настоятельно рекомендуем указывать путь к папке. Если указать имя файла, команда создаст дамп кучи только для первой ошибки нехватки памяти из-за ограничений формата файла HPROF. Если указать путь к папке, вы получите дамп кучи в файле с автоматически созданным именем для каждой ошибки нехватки памяти.
Создание журналов сборки мусора
Используйте следующий параметр --jvm-options
, чтобы создать журналы сборки мусора. Дополнительные сведения см. в официальной документации по виртуальной машине Java.
--jvm-options="-XX:+PrintGCDetails -Xloggc:<path-to-GC-log-file>"
Создание JFR-файла при выходе
Используйте следующий параметр --jvm-options
, чтобы создать JFR-файл. Дополнительные сведения см. в официальной документации по виртуальной машине Java.
--jvm-options="-XX:StartFlightRecording=dumponexit=true,filename=<path-to-JFR-file>"
Настройка пути для созданных файлов
Чтобы у вас был доступ к файлам, убедитесь, что целевой путь созданного файла ведет к постоянному хранилищу, привязанному к приложению. Например, при создании постоянного хранилища в Azure Spring Apps можно использовать файл JSON, аналогичный приведенному ниже.
{
"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
}
}
]
}
Кроме того, можно использовать следующую команду, чтобы добавить в постоянное хранилище.
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>