Ejemplos del análisis de request.log AEM

Última actualización: 2023-08-09

Descripción

Entorno

Experience Manager 6.5

Problema/Síntomas

Adobe Experience Manager AEM () request.log contiene información útil, como el tiempo de respuesta, para analizar los problemas de rendimiento. Aquí hay una lista de ejemplos de análisis usando comandos de Linux (incluidos algunos comandos externos como ruby [ 1] y datamash [ 2] ).

Guías de instalación

[ 1] https://www.ruby-lang.org/en/documentation/installation/

[ 2] https://www.gnu.org/software/datamash/download/

Resolución

Índice de contenidos

A. Introducción

  • Formato de request.log

B. Etapas de preparación

  1. Limpieza de datos
  2. Hora de reinicio
  3. Número de accesos por hora
  4. Máximo procesamiento simultáneo
  5. División de un archivo de registro
  6. Combinar registros de solicitud y registros de respuesta

C. Ejemplos de análisis

  1. Los accesos más pesados
  2. Accede a la respuesta faltante
  3. Accesos lentos
  4. Datos de series temporales del tiempo de respuesta
  5. Tiempo de respuesta mínimo, medio (promedio), medio y máximo
  6. Número de accesos por periodo
  7. Número de estados de respuesta por periodo
  8. Direcciones URL más frecuentes
  9. access.log registros para un request.log registro

D. Conclusión

A. Introducción

El formato de request.log

AEM,5 genera request.log en el siguiente formato de forma predeterminada. Debido a una limitación del sistema, las líneas de comandos de este artículo se muestran como imágenes en lugar de texto sin formato.

Ejemplo de request.log:

En este artículo, una línea con "-> " se denomina "registro de solicitud". Una línea con "< -" es un "registro de respuesta".

Solicitar registro:

AEM Cuando el usuario recibe una solicitud, se registra un registro de solicitud. Contiene la fecha y hora de recepción, el ID de solicitud, el método de solicitud y la dirección URL.

Registro de respuestas:

AEM Cuando el usuario responde a una solicitud, se registra un registro de respuesta. Contiene la fecha y la hora de respuesta, el ID de solicitud, el código de estado, el tipo de contenido y el tiempo de respuesta (en milisegundos).

Busque el manual correspondiente en Interpretación de request.log.

B. Pasos de preparación

Paso 1. Limpieza de datos

Antes de sumergirse en el análisis de request.logSin embargo, es importante estandarizar los registros.

El primero sed elimina un espacio adicional en los registros de respuesta Content-Type para evitar una separación de campos incorrecta con espacios en blanco. El comando ruby (consulte [ 1] anterior para instalar Ruby) convierte el formato de fecha a ISO 8601. El comando ruby también separa la fecha y la hora con un espacio en blanco en lugar de dos puntos.

Paso 2. Hora de reinicio

AEM Al reiniciar la instalación de un paquete de servicio y un paquete de servicio, se restablece el ID de solicitud de request.log. La solicitud se registra con la solicitud ID = 0 indica que podría haber este tipo de operación.

En el ejemplo anterior, los ID de solicitud se restablecieron a 0 a las 13:08:49 y 13:26:13.

Paso 3. Número de accesos por hora

Cuente el número de accesos por hora y el intervalo de tiempo del request.log.

Paso 4. Máximo procesamiento simultáneo

AEM El número de procesamientos simultáneos ayuda a adivinar la carga del servidor de los recursos de la.

AEM De forma predeterminada, el número máximo de conexiones simultáneas para Jetty en la se establece en 200. Se produce un retraso en la liberación del socket tras completar la respuesta. Cuando el número de procesamientos simultáneos supera aproximadamente los 170, no puede aceptar nuevas solicitudes.

Paso 5. División de un archivo de registro

El ID de solicitud de request.log AEM se restablece cuando se reinicia la aplicación o cuando se instala un paquete de servicio de. Debido a este comportamiento, el análisis puede ser incorrecto cuando un request.log contiene dichas operaciones. Para realizar un análisis preciso y reducir el tamaño del archivo que se está gestionando a la vez, divida el request.log uso de registros de solicitud con la solicitud ID = 0.

Paso 6. Combinar registros de solicitud y registros de respuesta

La combinación de registros de solicitud y respuesta por ID de solicitud facilita la detección cuando se inician problemas de rendimiento. Este archivo de registro combinado se utilizará en los ejemplos posteriores.

Los últimos sed El comando agrega una respuesta ficticia a los registros de solicitud que no tienen un registro de respuesta correspondiente. También puede haber registros de respuesta sin registros de solicitud. Pero son ignorables, ya que no suelen ser un problema para la investigación.

El archivo de registro combinado debería tener este aspecto:

C. Ejemplos de análisis

Ejemplo 1. Los accesos más pesados

Ordene el archivo de registro combinado por tiempo de respuesta en orden descendente, incluidos los accesos sin respuesta.

Ejemplo 2. Accede a la respuesta faltante

Extraiga los accesos que no tengan sus registros de respuesta correspondientes utilizando el tiempo de respuesta ficticio.

Si el tiempo de recepción de accesos sin respuesta se correlaciona con un aumento en la carga del servidor, estos accesos pueden haber activado problemas de rendimiento.

Ejemplo 3. Accesos lentos

Extraiga los accesos que hayan tardado más de 10 segundos.

Cuando el número de visitas es demasiado alto, sustituya [ 0-9] {5} con [ 0-9] {6} en el grep para reducir los accesos que han tardado más de 100 segundos.

Ejemplo 4. Datos de series temporales del tiempo de respuesta

Para crear gráficos, es útil extraer solo la marca de tiempo y el tiempo de respuesta de los datos.

Omitir los accesos que respondieron inmediatamente hace que los datos sean más eficientes. En el siguiente ejemplo se extrae el acceso que ha tardado más de un segundo.

Ejemplo 5. Tiempo de respuesta mínimo, medio (promedio), medio y máximo

El ejemplo anterior utiliza el comando datamash (https://www.gnu.org/software/datamash/) para el procesamiento estadístico. Si el registro contiene accesos sin respuesta, el valor ficticio influye en el resultado.

Ejemplo 6. Número de accesos por periodo

Recuento del número de accesos por diez minutos. El resultado ayuda a determinar si el tráfico elevado causó un problema de rendimiento.

El siguiente ejemplo reduce los datos a solo solicitudes de POST. Un caso de uso típico es determinar si hay una concentración de creación o replicación de contenido en el nivel de publicación.

Ejemplo 7. Número de estados de respuesta por periodo

Cree una tabla con el número de cada estado de respuesta cada diez minutos con el comando datamash.

Ejemplo 8. Direcciones URL más frecuentes

Imprimir las tres direcciones URL principales a las que se accedió con mayor frecuencia cada diez minutos.

Ejemplo 9. access.log registros para un request.log registro

Buscar access.log para registros que corresponden a un ID de solicitud determinado.

Si se produjeron varios accesos a la misma dirección URL al mismo tiempo, el resultado muestra varios access.log Registros de para un único ID de solicitud.

D. Conclusión

Los ejemplos de este artículo le ayudarán a analizar los problemas de rendimiento.

Los ejemplos enumerados se han probado en CentOS 7.5 y Ubuntu 22.04LTS, pero es posible que no funcionen según lo esperado en función de su entorno, como diferentes versiones o variaciones de los comandos. Ajústelos según los comandos instalados en su entorno.

En esta página