Ejemplos del análisis de request.log | AEM
request.log de Adobe Experience Manager AEM () es una fuente de información muy completa, incluidos los tiempos de respuesta, que es crucial para analizar los problemas de rendimiento. Este artículo proporciona varios ejemplos para ilustrar este punto.
Descripción description
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. Esta es una lista de ejemplos de análisis que utilizan 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 resolution
Tabla de contenido
A. Introducción
- Formato de
request.log
B. Pasos de preparación
- Limpieza de datos
- Hora de reinicio
- Número de accesos por hora
- Máximo procesamiento simultáneo
- División de un archivo de registro
- Combinar registros de solicitud y registros de respuesta
C. Ejemplos de análisis
- Los accesos más pesados
- Accede a la respuesta faltante
- Accesos lentos
- Datos de series temporales del tiempo de respuesta
- Tiempo de respuesta mínimo, medio (promedio), medio y máximo
- Número de accesos por periodo
- Número de estados de respuesta por periodo
- Direcciones URL más frecuentes
access.log
registros para un registrorequest.log
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".
Registro de solicitud:
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 del request.log.
B. Pasos de preparación
Paso 1. Limpieza de datos
Antes de sumergirse en el análisis de request.log
, es importante estandarizar los registros de registro.
El primer comando sed
quita un espacio adicional en los registros de respuesta Content-Type para evitar una separación de campos incorrecta con espacio 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 identificador de solicitud de request.log
. Los registros de solicitud con la solicitud ID = 0
indican que puede haber este tipo de operación.
En el ejemplo anterior, los identificadores 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 de request.log
.
Paso 4. Máximo de 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. Dividir un archivo de registro
AEM El id. de solicitud de request.log
se restablece cuando se reinicia la aplicación o se instala un paquete de servicio de la aplicación de servicio (Service Pack). Debido a este comportamiento, el análisis puede ser incorrecto cuando un request.log
contiene este tipo de operaciones. Para realizar un análisis preciso y reducir el tamaño de archivo que se administra a la vez, divida request.log
mediante 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.
El último comando sed
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 que falta
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. Acceso lento
Extraiga los accesos que hayan tardado más de 10 segundos.
Cuando el número de visitas es demasiado alto, reemplace [ 0-9] {5}
por [ 0-9] {6}
en el comando grep
para reducir el número de accesos que tardaron más de 100 segundos.
Ejemplo 4. Datos de series de tiempo 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, 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 un período
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 Publish.
Ejemplo 7. Número de estados de respuesta por un período
Cree una tabla con el número de cada estado de respuesta cada diez minutos con el comando datamash.
Ejemplo 8. URL más frecuentes
Imprimir las tres direcciones URL principales a las que se accedió con mayor frecuencia cada diez minutos.
Ejemplo 9. registros access.log para un registro request.log
Busque access.log
registros que correspondan a un ID de solicitud en particular.
Si se produjeron varios accesos a la misma dirección URL al mismo tiempo, el resultado muestra varios registros access.log
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.