Задание параметров диагностики с помощью значений для параметров виртуальной машины Java для устранения неполадок в Azure Spring Apps

Примечание.

Azure Spring Apps — это новое название службы Azure Spring Cloud. Старое название будет еще некоторое время встречаться в наших материалах, пока мы не обновим ресурсы, такие как снимки экрана, видео и схемы.

Эта статья применима к: ✔️ 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>

Следующие шаги