Compartir por


Captura del volcado de memoria del montón y del volcado de memoria de subproceso manualmente y uso de Java Flight Recorder en Azure Spring Apps

Nota:

Los planes Básico, Estándar y Enterprise quedarán en desuso a partir de mediados de marzo de 2025, con un período de retirada de 3 años. Se recomienda realizar la transición a Azure Container Apps. Para más información, consulte el anuncio de retirada de Azure Spring Apps.

El plan Estándar por consumo y dedicado quedará obsoleto a partir del 30 de septiembre de 2024, con un cierre completo al cabo de seis meses. Se recomienda realizar la transición a Azure Container Apps. Para más información, consulte Migrar el plan Estándar por consumo y dedicado de Azure Spring Apps a Azure Container Apps.

La información de este artículo puede ponerse en práctica en: ✔️ Básico o Estándar ✔️ Enterprise

En este artículo se describe cómo generar manualmente un volcado de memoria de montón o un volcado de memoria de subproceso, y cómo iniciar Java Flight Recorder (JFR).

Solucionar los problemas de forma eficaz es fundamental para asegurarse de que puede corregir problemas de los entornos de producción y mantener su negocio en línea. Azure Spring Apps proporciona streaming y consulta de registros de aplicaciones, emisión de métricas enriquecidas, alertas, seguimiento distribuido, etc. Sin embargo, cuando recibe alertas sobre solicitudes con latencia alta, pérdida de montón de JVM o uso elevado de CPU, no hay ninguna solución de último tramo. Por este motivo, le hemos permitido generar manualmente un volcado de memoria del montón, generar un volcado de memoria de subproceso e iniciar JFR.

Requisitos previos

  • Una instancia del servicio Azure Spring Apps implementada. Para comenzar, consulte Inicio rápido: Implementación de la primera aplicación en Azure Spring Apps.
  • Al menos una aplicación ya creada en su instancia de servicio.
  • Su propio almacenamiento persistente, como se describe en Habilitación del almacenamiento persistente en Azure Spring Apps. Este almacenamiento se usa para guardar los archivos de diagnóstico generados. Las rutas de acceso que proporcione en los valores de parámetro siguientes deben estar en la ruta de acceso de montaje del almacenamiento persistente enlazado a la aplicación. Si quiere usar una ruta de acceso en la ruta de acceso de montaje, asegúrese de crear la subruta de acceso de antemano.

Generación de un volcado de memoria del montón

Use el siguiente comando para generar un volcado de memoria del montón de la aplicación en Azure Spring Apps.

az spring app deployment generate-heap-dump \
    --resource-group <resource-group-name> \
    --service <Azure-Spring-Apps-instance-name> \
    --app <app-name> \
    --deployment <deployment-name> \
    --app-instance <app-instance name> \
    --file-path <your-target-file-path-in-your-persistent-storage-mount-path>

Generación de un volcado de memoria de subprocesos

Use el siguiente comando para generar un volcado de memoria de subproceso de la aplicación en Azure Spring Apps.

az spring app deployment generate-thread-dump \
    --resource-group <resource-group-name> \
    --service <Azure-Spring-Apps-instance-name> \
    --app <app-name> \
    --deployment <deployment-name> \
    --app-instance <app-instance name> \
    --file-path <your-target-file-path-in-your-persistent-storage-mount-path>

Inicio de JFR

Use el siguiente comando para iniciar JFR para la aplicación en Azure Spring Apps.

az spring app deployment start-jfr \
    --resource-group <resource-group-name> \
    --service <Azure-Spring-Apps-instance-name> \
    --app <app-name> \
    --deployment <deployment-name> \
    --app-instance <app-instance name> \
    --file-path <your-target-file-path-in-your-persistent-storage-mount-path> \
    --duration <duration-of-JFR>

El valor predeterminado de duration es 60 segundos.

Generación de archivos mediante Azure Portal

Realice los pasos siguientes para generar un volcado de memoria del montón o de subproceso de la aplicación en Azure Spring Apps.

  1. En Azure Portal, vaya a la aplicación de destino y seleccione Solución de problemas.

    Captura de pantalla de Azure Portal en la que se muestra la página de información general de la aplicación con el botón Solución de problemas destacado.

  2. En el panel Solución de problemas, seleccione la instancia de la aplicación y el tipo de volcado que desea recopilar.

    Captura de pantalla del panel Solución de problemas de Azure Portal.

  3. En el campo Ruta de acceso del archivo, especifique la ruta de acceso de montaje del almacenamiento persistente.

  4. Seleccione Recopilar.

Obtención de archivos de diagnóstico

Vaya a la ruta de acceso del archivo de destino en el almacenamiento persistente y busque el volcado de memoria o el JFR. Desde ahí, puede descargarlo en la máquina local. El nombre del archivo generado será similar a <app-instance>_heapdump_<time-stamp>.hprof para el volcado de memoria del montón, <app-instance>_threaddump_<time-stamp>.txt para el volcado de memoria de subproceso y <app-instance>_JFR_<time-stamp>.jfr para el archivo JFR.

Pasos siguientes