Partilhar via


Use as configurações de diagnóstico das opções da JVM para solução de problemas avançada no Azure Spring Apps

Note

Os planos Basic, Standarde Enterprise entraram em um período de aposentadoria em 17 de março de 2025. Para obter mais informações, consulte o anúncio de aposentadoria do Azure Spring Apps.

Este artigo aplica-se a:✅ Java ❎ C#

Este artigo aplica-se a:✅ Empresa Básica/Padrão ✅

Este artigo mostra como usar as configurações de diagnóstico por meio das opções da JVM para conduzir a solução de problemas avançada no Azure Spring Apps.

Há vários parâmetros de inicialização de aplicativos baseados em JVM relacionados a logs de despejo de pilha, Java Flight Recorder (JFR) e coleta de lixo (GC). No Azure Spring Apps, damos suporte à configuração da JVM usando as opções da JVM.

Prerequisites

Gerar um despejo de memória quando há falta de memória

Utilize o seguinte parâmetro --jvm-options para gerar um "heap dump" quando encontrar um erro de falta de memória.

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

Como alternativa para especificar o caminho para a pasta de heap dump, pode fornecer um nome de ficheiro específico. No entanto, é altamente recomendável que você forneça um caminho de pasta. Se você fornecer um nome de arquivo, o comando gerará um despejo de pilha apenas para o primeiro erro de falta de memória, devido às limitações do formato de arquivo HPROF. Se você fornecer um caminho de pasta, obterá um despejo de pilha em um arquivo com um nome gerado automaticamente para cada erro de falta de memória.

Gerar logs GC

Use o parâmetro a seguir --jvm-options para gerar logs GC. Para obter mais informações, consulte a documentação oficial da JVM.

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

Gerar um arquivo JFR ao sair

Use o seguinte --jvm-options parâmetro para gerar um arquivo JFR. Para obter mais informações, consulte a documentação oficial da JVM.

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

Configurar o caminho para os arquivos gerados

Para garantir que você possa acessar seus arquivos, certifique-se de que o caminho de destino do arquivo gerado esteja no armazenamento persistente vinculado ao seu aplicativo. Por exemplo, você pode usar JSON semelhante ao exemplo a seguir ao criar seu armazenamento persistente no 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
              }
          }
       ]
    }

Como alternativa, você pode usar o seguinte comando para acrescentar ao armazenamento persistente.

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>

Próximos passos