Supervisión y mantenimiento de la instancia de Adobe Experience Manager monitoring-and-maintaining-your-aem-instance
AEM Una vez implementadas las instancias de, debe monitorizar y mantener su funcionamiento, rendimiento e integridad.
Un factor clave aquí es que para reconocer posibles problemas, debe saber cómo se ve y se comporta su sistema en condiciones normales. La mejor manera de conseguir esta capacidad es supervisar el sistema y recopilar información a lo largo del tiempo.
*ERROR* LowDiskSpaceBlocker
" se pueden ver en el archivo de registro cuando el espacio libre se reduce.Copias de seguridad backups
Es recomendable realizar copias de seguridad de:
- Instalación del software: antes o después de realizar cambios significativos en la configuración
- El contenido incluido en el repositorio: con regularidad
Es probable que su compañía tenga una directiva de copia de seguridad que usted siga. Entre las consideraciones adicionales sobre qué y cuándo realizar copias de seguridad se incluyen las siguientes:
- qué tan críticos son el sistema y los datos.
- la frecuencia con la que se realizan cambios en el software o en los datos.
- volumen de datos; la capacidad puede ser ocasionalmente un problema, al igual que el tiempo para realizar la copia de seguridad.
- si la copia de seguridad se puede realizar mientras los usuarios están en línea y, si es posible, cuál es el impacto en el rendimiento.
- la distribución geográfica de los usuarios; es decir, ¿cuándo es el mejor momento para realizar copias de seguridad (para minimizar el impacto)?
- su política de recuperación ante desastres; ¿existen directrices sobre dónde deben almacenarse los datos de copia de seguridad (por ejemplo, fuera del sitio y en un medio específico)?
A menudo, se realiza una copia de seguridad completa a intervalos regulares (por ejemplo, diaria, semanal o mensual), con copias de seguridad incrementales intermedias (por ejemplo, por hora, diaria o semanal).
Copia de seguridad de la instalación del software backing-up-your-software-installation
Después de la instalación o cambios significativos en la configuración, cree un copia de seguridad de la instalación del software.
Para llevar a cabo este tarea, haga una copia de seguridad de todo su repositorio y luego:
- Parada AEM.
- Haga una copia de seguridad de todo el(la)
<cq-installation-dir>
desde su sistema de archivos.
Copia de seguridad del repositorio backing-up-your-repository
La sección Copia de seguridad y restauración de la documentación de CRX cubre todos los problemas relacionados con las copias de seguridad del repositorio de CRX.
Para obtener información detallada acerca de cómo realizar una copia de seguridad en línea activa, consulte Creación de una copia de seguridad en línea.
Depuración de versiones version-purging
La herramienta Purgar versiones está diseñada para purgar las versiones de un nodo o una jerarquía de nodos en su repositorio. Su propósito principal es ayudarle a reducir el tamaño del repositorio eliminando las versiones antiguas de los nodos.
AEM Esta sección trata sobre las operaciones de mantenimiento relacionadas con la función de control de versiones de las versiones de los informes de la aplicación de. La herramienta Purgar versión está diseñada para purgar las versiones de un nodo o una jerarquía de nodos en su repositorio. Su propósito principal es ayudarle a reducir el tamaño del repositorio eliminando las versiones antiguas de los nodos.
Información general overview
La herramienta Purgar versiones está disponible como tarea de mantenimiento semanal. Antes de usar por primera vez, debe añadirse y luego configurarse. Después, se puede ejecutar bajo petición o de forma semanal.
Depuración de versiones de un sitio Web purging-versions-of-a-web-site
Para purgar versiones de un sitio web, siga estos pasos:
-
Vaya a Herramientas consola, seleccione Operación, Mantenimiento y, a continuación, Ventana de mantenimiento semanal.
-
Seleccione + Agregar en la barra de herramientas superior.
-
Seleccione Depuración de versión de la lista desplegable del cuadro de diálogo Agregar nueva tarea. Luego Guardar.
-
Se agregó la tarea Depuración de versión. Utilice las acciones de tarjeta para lo siguiente:
- Seleccionar: muestra acciones adicionales en la barra de herramientas superior
- Ejecutar: para ejecutar la depuración configurada inmediatamente
- Configurar: para configurar la tarea de depuración semanal
-
Seleccione la acción Configurar para abrir la consola web de la tarea de depuración de versiones de CQ WCM de día, donde puede configurar lo siguiente:
-
Purgar rutas
Establezca la ruta de inicio del contenido que se va a purgar; por ejemplo,/content/wknd
.note caution CAUTION El Adobe recomienda definir varias rutas para cada uno de los sitios web. La definición de una ruta con demasiados hijos puede alargar significativamente el tiempo para realizar la depuración. -
Purgar versiones de forma recursiva
- Anule la selección si solo desea depurar el nodo definido por la ruta.
- Seleccione si desea depurar el nodo definido por la ruta y sus descendientes.
-
Número máximo de versiones
Establezca el número máximo de versiones (para cada nodo) que desea conservar. Dejar vacío para no utilizar esta configuración. -
Número mínimo de versiones
Establezca el número mínimo de versiones (para cada nodo) que desea conservar. Dejar vacío para no utilizar esta configuración. -
Página de versión máxima
Establezca la antigüedad máxima de la versión en días (para cada nodo) que desea mantener. Dejar vacío para no utilizar esta configuración.
Luego Guardar.
-
-
Vaya o vuelva a la ventana Ventana de mantenimiento semanal y seleccione Ejecutar para iniciar el proceso inmediatamente.
- http://localhost:4502/etc/versioning/purge.html
Ejecución en seco: Análisis de la consola analyzing-the-console
La IU clásica proporciona la opción Ejecución en seco de:
- http://localhost:4502/etc/versioning/purge.html
El proceso enumera todos los nodos que se han procesado. Durante el proceso, un nodo puede tener uno de los siguientes estados:
-
ignore (not versionnable)
: el nodo no admite el control de versiones y se omite durante el proceso. -
ignore (no version)
: el nodo no tiene ninguna versión y se omite durante el proceso. -
retained
: el nodo no se ha purgado. -
purged
: el nodo se ha purgado.
Además, la consola proporciona información útil sobre las versiones:
-
V 1.0
: el número de versión. -
V 1.0.1
*: la estrella indica que la versión es la versión actual (base) y que no se puede depurar. -
Thu Mar 15 2012 08:37:32 GMT+0100
: la fecha de la versión.
En el ejemplo siguiente:
- Las Shirts versiones se depuran porque su antigüedad es superior a dos días.
- Las versiones de Tonga Fashions! se purgan porque su número de versiones es mayor que 5.
Trabajar con registros de auditoría y archivos de registro working-with-audit-records-and-log-files
Los registros de auditoría y los archivos de registro relacionados con Adobe Experience Manager AEM () se encuentran en varias ubicaciones. A continuación se proporciona una descripción general de lo que puede encontrar y dónde puede encontrarlo.
Uso de registros working-with-logs
AEM WCM registra registros detallados. Después de desempaquetar e iniciar Quickstart, podrá encontrar los registros en:
-
<cq-installation-dir>/crx-quickstart/logs/
-
<cq-installation-dir>/crx-quickstart/repository/
Rotación de archivo de registro log-file-rotation
La rotación del archivo de registro hace referencia al proceso que limita el crecimiento del archivo creando un archivo periódicamente. AEM En el archivo de registro llamado error.log
, se gira una vez al día según las reglas indicadas:
-
Se cambió el nombre del archivo
error.log
según el patrón{original_filename}.yyyy-MM-dd
. Por ejemplo, el 11 de julio de 2010, se cambió el nombre del archivo de registro actual aerror.log-2010-07-10
y, a continuación, se crea un nuevoerror.log
. -
Los archivos de registro anteriores no se eliminan, por lo que es responsabilidad suya limpiar los archivos de registro antiguos periódicamente para limitar el uso del disco.
Búsqueda de los archivos de registro finding-the-log-files
AEM Varios archivos de registro se guardan en el servidor de archivos donde instaló la instalación de la siguiente manera:
-
<cq-installation-dir>/crx-quickstart/logs
-
access.log
AEM Todas las solicitudes de acceso al WCM de la y al repositorio se registran aquí. -
audit.log
Las acciones de moderación se registran aquí. -
error.log
Los mensajes de error (de diferentes niveles de gravedad) se registran aquí. -
ImageServer-<PortId>-yyyy>-<mm>-<dd>.log
Este registro solo se usa si Dynamic Media está habilitado. Proporciona estadísticas e información analítica utilizada para analizar el comportamiento del proceso interno de ImageServer. -
request.log
Cada solicitud de acceso se registra aquí junto con la respuesta. -
s7access-<yyyy>-<mm>-<dd>.log
Este registro solo se usa si Dynamic Media está habilitado. El registro de acceso de s7registra cada solicitud realizada a Dynamic Media a través de/is/image
y/is/content
. -
stderr.log
Contiene mensajes de error, de distinto nivel de gravedad, generados durante el inicio. De manera predeterminada, el nivel de registro está establecido enWarning
(WARN
) -
stdout.log
Contiene mensajes de registro que indican eventos durante el inicio. -
upgrade.log
Proporciona un registro de todas las operaciones de actualización que se ejecutan desde los paquetescom.day.compat.codeupgrade
ycom.adobe.cq.upgradesexecutor
.
-
-
<cq-installation-dir>/crx-quickstart/repository/segmentstore
journal.log
Información de diario de revisión.
Activación del nivel de registro de depuración activating-the-debug-log-level
El nivel de registro predeterminado (Configuración de registro de Apache Sling) es Información, por lo que los mensajes de depuración no se registran.
Para activar el nivel de registro de depuración para un registrador, establezca la propiedad org.apache.sling.commons.log.level
para depurar en el repositorio. Por ejemplo, en /libs/sling/config/org.apache.sling.commons.log.LogManager
para configurar el registro global de Apache Sling.
Una línea del archivo de depuración suele comenzar con DEBUG y, a continuación, proporciona el nivel de registro, la acción del instalador y el mensaje de registro. Por ejemplo:
DEBUG 3 WebApp Panel: WebApp successfully deployed
Los niveles de registro son los siguientes:
Crear un archivo de registro personalizado create-a-custom-log-file
En determinadas circunstancias, es posible que desee crear un archivo de registro personalizado con un nivel de registro diferente. En el repositorio, haga lo siguiente:
-
Si no existe, cree una carpeta de configuración (
sling:Folder
) para el proyecto/apps/<project-name>/config
. -
En
/apps/<project-name>/config
, cree un nodo para la nueva Configuración del registrador de Apache Sling:-
Nombre:
org.apache.sling.commons.log.LogManager.factory.config-<identifier>
Donde
<identifier>
se reemplaza por texto libre que usted (debe) escribe para identificar la instancia (no puede omitir esta información).Por ejemplo,
org.apache.sling.commons.log.LogManager.factory.config-MINE
-
Tipo:
sling:OsgiConfig
note note NOTE Aunque no es un requisito técnico, es recomendable hacer <identifier>
único. -
-
Establezca las siguientes propiedades en este nodo:
-
Nombre:
org.apache.sling.commons.log.file
Tipo: cadena
Valor: especifique el archivo de registro; por ejemplo,
logs/myLogFile.log
-
Nombre:
org.apache.sling.commons.log.names
Tipo: String[] (String + Multi)
Valor: especifique los servicios OSGi para los que el registrador va a registrar mensajes; por ejemplo, todos los siguientes:
org.apache.sling
org.apache.felix
com.day
-
Nombre:
org.apache.sling.commons.log.level
Tipo: cadena
Valor: especifique el nivel de registro necesario (
debug
,info
,warn
oerror
); por ejemplo,debug
-
Configure los demás parámetros según sea necesario:
-
Nombre:
org.apache.sling.commons.log.pattern
Tipo:
String
Value: especifique el patrón del mensaje de registro según sea necesario; por ejemplo,
{0,date,dd.MM.yyyy HH:mm:ss.SSS} *{4}* [{2}] {3} {5}
-
note note NOTE org.apache.sling.commons.log.pattern
admite hasta seis argumentos.{0} Marca de tiempo de tipo java.util.Date
{1} el marcador de registro {2} el nombre del subproceso actual {3} el nombre del registrador {4} el nivel de registro {5} el mensaje de registro Si la llamada de registro incluye un Throwable
, el stacktrace se anexa al mensaje.note caution CAUTION org.apache.sling.commons.log.names debe tener un valor. note note NOTE Las rutas de acceso de escritura de registros son relativas a la ubicación crx-quickstart
.Por lo tanto, un archivo de registro especificado como: logs/thelog.log
escribe a: <cq-installation-dir>/crx-quickstart/logs/thelog.log
.Y un archivo de registro especificado como: ../logs/thelog.log
escribe en un directorio: <cq-installation-dir>/logs/
(es decir, junto a<cq-installation-dir>/crx-quickstart/
) -
-
Este paso sólo es necesario cuando se requiere un nuevo Writer (es decir, con una configuración distinta de la predeterminada Writer).
note caution CAUTION Solo se requiere una nueva configuración de Escritor de registro cuando el valor predeterminado existente no es adecuado. Si no se configura ningún objeto Writer explícito, el sistema genera automáticamente un objeto Writer implícito basado en el valor predeterminado. En
/apps/<project-name>/config
, cree un nodo para la nueva configuración del escritor de registro de Apache Sling:-
Nombre:
org.apache.sling.commons.log.LogManager.factory.writer-<identifier>
(a Writer)Al igual que con el registrador,
<identifier>
se reemplaza por texto libre que usted (debe) introducir para identificar la instancia (no puede omitir esta información). Por ejemplo,org.apache.sling.commons.log.LogManager.factory.writer-MINE
-
Tipo:
sling:OsgiConfig
note note NOTE Aunque no es un requisito técnico, se recomienda hacer que <identifier>
sea único.Establezca las siguientes propiedades en este nodo:
-
Nombre:
org.apache.sling.commons.log.file
Tipo:
String
Value: especifique el archivo de registro para que coincida con el archivo especificado en el registrador;
para este ejemplo,
../logs/myLogFile.log
. -
Configure los demás parámetros según sea necesario:
-
Nombre:
org.apache.sling.commons.log.file.number
Tipo:
Long
Valor: especifique el número de archivos de registro que desea conservar; por ejemplo,
5
-
Nombre:
org.apache.sling.commons.log.file.size
Tipo:
String
Valor: especifique lo necesario para controlar la rotación de archivos por tamaño/fecha; por ejemplo,
'.'yyyy-MM-dd
-
note note NOTE org.apache.sling.commons.log.file.size
controla la rotación del archivo de registro estableciendo:- un tamaño de archivo máximo
- una programación de fecha y hora
para indicar cuándo se crea un nuevo archivo (y el nombre del archivo existente cambia según el patrón de nombre). - Se puede especificar un límite de tamaño con un número. Si no se proporciona ningún indicador de tamaño, se toma como número de bytes, o puede agregar uno de los indicadores de tamaño:
KB
,MB
oGB
(se omite el uso de mayúsculas y minúsculas). - Se puede especificar una programación de hora/fecha como un patrón
java.util.SimpleDateFormat
. Define el período de tiempo después del cual se gira el archivo. Además, el sufijo anexado al archivo girado (para su identificación).
El valor predeterminado es '.'aaaa-MM-dd (para rotación diaria de registros). Por ejemplo, a medianoche del 20 de enero de 2010 (o cuando se produce el primer mensaje de registro posterior a esta fecha para ser preciso), … /logs/error.log se renombra a … /logs/error.log.2010-01-20. El registro del 21 de enero se genera en (nuevo y vacío) … /logs/error.log hasta que se da la vuelta al cambio de día. table 0-row-2 1-row-2 2-row-2 3-row-2 4-row-2 5-row-2 '.'yyyy-MM
Rotación al comienzo de cada mes '.'yyyy-ww
Rotación el primer día de cada semana (depende de la configuración regional). '.'yyyy-MM-dd
Rotación a medianoche cada día. '.'yyyy-MM-dd-a
Rotación a medianoche y mediodía de cada día. '.'yyyy-MM-dd-HH
Rotación al principio de cada hora. '.'yyyy-MM-dd-HH-mm
Rotación al principio de cada minuto. Nota: Al especificar una hora/fecha: -
Debe "escapar" el texto literal dentro de un par de comillas simples (" ');
Evita que ciertos caracteres se interpreten como letras de patrón.
-
Utilice solo los caracteres permitidos para un nombre de archivo válido en cualquier parte de la opción.
-
-
Lea el nuevo archivo de registro con la herramienta elegida.
El archivo de registro creado por este ejemplo es
../crx-quickstart/logs/myLogFile.log
.
La consola Felix también proporciona información sobre la compatibilidad de registros de Sling en ../system/console/slinglog
; por ejemplo, https://localhost:4502/system/console/slinglog
.
Búsqueda de registros de auditoría finding-the-audit-records
Los registros de auditoría se mantienen para proporcionar un registro de quién hizo qué y cuándo. AEM Se generan diferentes registros de auditoría para los eventos WCM y OSGi de la.
AEM Registros de auditoría de WCM mostrados durante la creación de páginas aem-wcm-audit-records-shown-when-page-authoring
-
Abra una página.
-
En la barra de tareas, puede seleccionar la ficha con el icono de candado y, a continuación, hacer doble clic en Registro de auditoría…
-
Se abre una nueva ventana que muestra la lista de registros de auditoría de la página actual.
-
Haz clic en Aceptar cuando quieras cerrar la ventana.
AEM Registros de auditoría de WCM dentro del repositorio aem-wcm-auditing-records-within-the-repository
En la carpeta /var/audit
, los registros de auditoría se conservan de acuerdo con el recurso. Puede explorar en profundidad hasta que vea los registros individuales y la información que contienen.
Estas entradas contienen la misma información que se muestra al editar una página.
Registros de auditoría OSGi de la consola web osgi-audit-records-from-the-web-console
AEM Los eventos OSGi también generan registros de auditoría que se pueden ver en la ficha Estado de configuración > Archivos de registro de la consola web de la consola web de la:
Supervisión de los agentes de replicación monitoring-your-replication-agents
Puede supervisar las colas de replicación para detectar si una cola está bloqueada o inactiva, lo que a su vez puede indicar un problema con una instancia de publicación o un sistema externo:
-
¿están habilitadas todas las colas necesarias?
-
¿sigue siendo necesaria alguna cola deshabilitada?
-
todas las colas de
enabled
deben tener el estadoidle
oactive
, que indica un funcionamiento normal; ninguna cola debe serblocked
, lo que a menudo es una señal de problemas en el lado del receptor. -
si el tamaño de la cola aumenta con el tiempo, puede indicar una cola bloqueada.
Para supervisar un agente de replicación:
-
AEM Obtenga acceso a la ficha Herramientas en la sección de la.
-
Haga clic en Replicación.
-
Haga doble clic en el vínculo a los agentes para el entorno apropiado (el panel izquierdo o el derecho); por ejemplo, Agentes de autor.
La ventana resultante muestra una descripción general de todos los agentes de replicación para el entorno de creación, incluidos su destino y estado.
-
Haga clic en el nombre del agente apropiado (que es un vínculo) para mostrar información detallada sobre ese agente:
Aquí puede hacer lo siguiente:
- Compruebe si el agente está activado.
- Consulte el objetivo de cualquier replicación.
- Ver si la cola de replicación está activa (habilitada).
- Ver si hay algún elemento en la cola.
- Actualizar o Borrar para actualizar la visualización de las entradas de la cola. Al hacerlo, puede ver los elementos que entran y salen de la cola.
- Ver registro para acceder al registro de cualquier acción por parte del agente de replicación.
- Probar conexión a la instancia de destino.
- Forzar reintento en cualquier elemento en cola, si es necesario.
note caution CAUTION No utilice el vínculo "Probar conexión" para la bandeja de salida de replicación inversa en una instancia de publicación. Si se realiza una prueba de replicación para una cola de Bandeja de salida, los elementos anteriores a la replicación de prueba se vuelven a procesar con cada replicación inversa. Si estos elementos existen en cola, se pueden encontrar con la siguiente consulta JCR XPath y deben eliminarse. /jcr:root/var/replication/outbox//*[@cq:repActionType='TEST']
De nuevo, puede desarrollar una solución para detectar todos los agentes de replicación (ubicados en /etc/replication/author
o /etc/replication/publish
) y, a continuación, comprobar el estado del agente ( enabled
, disabled
) y la cola subyacente ( active
, idle
, blocked
).
Monitorización del rendimiento monitoring-performance
Optimización del rendimiento es un proceso interactivo que recibe el enfoque durante el desarrollo. Después de la implementación, se revisa después de intervalos o eventos específicos.
Los métodos utilizados al recopilar información para la optimización también se pueden utilizar para la monitorización continua.
A continuación se enumeran los problemas comunes de rendimiento que se producen, junto con propuestas sobre cómo detectarlos y contrarrestarlos.
Los problemas de rendimiento pueden provenir de varias causas que no tienen nada que ver con su sitio web, incluidas las ralentizaciones temporales en la velocidad de conexión, la carga de la CPU y muchas más.
También puede afectar a todos los visitantes o solo a un subconjunto de ellos.
Toda esta información debe obtenerse, ordenarse y analizarse antes de optimizar el rendimiento general o resolver problemas específicos.
-
Antes de experimentar un problema de rendimiento:
- recopilar la mayor cantidad de información posible para adquirir un buen conocimiento práctico del sistema en circunstancias normales.
-
Cuando experimenta un problema de rendimiento:
-
intente replicarlo con un navegador web estándar (o preferiblemente más), en un cliente diferente que sepa que tiene un buen rendimiento general o en el propio servidor (si es posible)
-
compruebe si algo (relacionado con el sistema) ha cambiado en un espacio de tiempo adecuado y si alguno de estos cambios podría haber afectado al rendimiento
-
haga preguntas como:
- ¿el problema solo se produce en momentos específicos?
- ¿el problema solo se produce en páginas específicas?
- ¿se ven afectadas otras solicitudes?
-
recopile la mayor cantidad de información posible para compararla con su conocimiento del sistema en circunstancias normales:
-
Herramientas para monitorizar y analizar el rendimiento tools-for-monitoring-and-analyzing-performance
A continuación se ofrece una breve descripción general de algunas de las herramientas disponibles para supervisar y analizar el rendimiento.
Algunas de estas herramientas dependen del sistema operativo.
Interpretación de request.log interpreting-the-request-log
AEM Este archivo registra información básica acerca de cada solicitud realizada a la persona que lo ha solicitado De esto se pueden extraer valiosas conclusiones.
request.log
ofrece una forma integrada de ver cuánto tiempo tardan las solicitudes. Con fines de desarrollo, resulta útil tail -f
el request.log
y observar si los tiempos de respuesta son lentos. Para analizar un(a) request.log
más grande(a), el Adobe recomienda el uso de rlog.jar
que le permite ordenar y filtrar los tiempos de respuesta.
El Adobe recomienda aislar las páginas "lentas" de request.log
y luego ajustarlas individualmente para obtener un mejor rendimiento. Incluya métricas de rendimiento por componente o use una herramienta de generación de perfiles de rendimiento como [yourkit](https://www.yourkit.com/)
.
Monitorización del tráfico en el sitio web monitoring-traffic-on-your-website
El registro de solicitudes registra cada solicitud realizada, junto con la respuesta obtenida:
09:43:41 [66] -> GET /author/y.html HTTP/1.1
09:43:41 [66] <- 200 text/html 797ms
Al sumar todas las entradas de GET dentro de períodos específicos (por ejemplo, en varios períodos de 24 horas), puede realizar declaraciones sobre el tráfico promedio en el sitio web.
Monitorización de los tiempos de respuesta con request.log monitoring-response-times-with-the-request-log
Un buen punto de partida para el análisis del rendimiento es el registro de solicitudes:
<cq-installation-dir>/crx-quickstart/logs/request.log
El registro tiene el siguiente aspecto (las líneas se abrevian para simplificar):
31/Mar/2009:11:32:57 +0200 [379] -> GET /path/x HTTP/1.1
31/Mar/2009:11:32:57 +0200 [379] <- 200 text/html 33ms
31/Mar/2009:11:33:17 +0200 [380] -> GET /path/y HTTP/1.1
31/Mar/2009:11:33:17 +0200 [380] <- 200 application/json 39ms
Este registro tiene una línea por solicitud o respuesta:
-
La fecha en la que se realizó cada solicitud o respuesta.
-
El número de la solicitud, entre corchetes. Este número coincide con la solicitud y la respuesta de.
-
Una flecha que indica si es una solicitud (flecha que señala a la derecha) o una respuesta (flecha a la izquierda).
-
Para las solicitudes, la línea contiene:
- el método (normalmente, GET, HEAD o POST)
- la página solicitada
- el protocolo
-
Para las respuestas, la línea contiene:
- el código de estado (200 significa "correcto", 404 significa "página no encontrada")
- el tipo MIME
- el tiempo de respuesta
Mediante pequeños scripts, puede extraer la información necesaria del archivo de registro y combinar las estadísticas que desee. Desde estas estadísticas, puede ver qué páginas o tipos de páginas son lentos y si el rendimiento general es satisfactorio.
Monitorización de los tiempos de respuesta de búsqueda con el request.log monitoring-search-response-times-with-the-request-log
Las solicitudes de búsqueda también se registran en el archivo de registro:
31/Mar/2009:11:35:34 +0200 [338] -> GET /author/playground/en/tools/search.html?query=dilbert&size=5&dispenc=utf-8 HTTP/1.1
31/Mar/2009:11:35:34 +0200 [338] <- 200 text/html 1562ms
Por lo tanto, como se ha indicado anteriormente, puede utilizar secuencias de comandos para extraer la información relevante y crear estadísticas.
Sin embargo, una vez que haya determinado el tiempo de respuesta, analice por qué la solicitud está tardando en responder y qué se puede hacer para mejorarla.
Monitorización del número y el impacto de usuarios simultáneos monitoring-the-number-and-impact-of-concurrent-users
De nuevo, request.log
se puede usar para supervisar la concurrencia y la reacción del sistema a ella.
Se deben realizar pruebas para determinar cuántos usuarios simultáneos puede manejar el sistema antes de que se vea un impacto negativo. De nuevo, se pueden utilizar secuencias de comandos para extraer los resultados del archivo de registro:
- monitorice cuántas solicitudes se realizan en un lapso de tiempo específico, como un minuto.
- pruebe los efectos de un número específico de usuarios que realizan las mismas solicitudes al mismo tiempo (lo más cerca posible). Por ejemplo, 30 usuarios que hicieron clic en Guardar al mismo tiempo.
31/Mar/2009:11:45:29 +0200 [333] -> GET /author/libs/Personalize/content/statics.close.gif HTTP/1.1
31/Mar/2009:11:45:29 +0200 [334] -> GET /author/libs/Personalize/content/statics.detach.gif HTTP/1.1
31/Mar/2009:11:45:30 +0200 [335] -> GET /author/libs/CFC/content/imgs/logo.rZMNURccynWcTpCxyuBNiTCoiBMmw000.default.gif HTTP/1.1
31/Mar/2009:11:45:32 +0200 [335] <- 304 text/html 0ms
31/Mar/2009:11:45:33 +0200 [334] <- 200 image/gif 31ms
31/Mar/2009:11:45:38 +0200 [333] <- 200 image/gif 31ms
31/Mar/2009:11:45:42 +0200 [336] -> GET /author/libs/CFC/content/imgs/logo.rZMNURccynWcTZRXunQbbQtvuuCMbRRBuWXz0000.default.gif HTTP/1.1
31/Mar/2009:11:45:43 +0200 [337] -> GET /author/titlebar_bg.gif HTTP/1.1
31/Mar/2009:11:45:43 +0200 [336] <- 304 text/html 0ms
31/Mar/2009:11:45:44 +0200 [337] <- 304 text/html 0ms
Uso de log.jar para buscar solicitudes con tiempos de larga duración using-rlog-jar-to-find-requests-with-long-duration-times
AEM La incluye varias herramientas de ayuda en lo siguiente:<cq-installation-dir>/crx-quickstart/opt/helpers
Una de estas herramientas, rlog.jar
, se puede usar para ordenar rápidamente request.log
de modo que las solicitudes se muestren por duración, de la más larga a la más corta.
El siguiente comando muestra los posibles argumentos:
$java -jar rlog.jar
Request Log Analyzer Version 21584 Copyright 2005 Day Management AG
Usage:
java -jar rlog.jar [options] <filename>
Options:
-h Prints this usage.
-n <maxResults> Limits output to <maxResults> lines.
-m <maxRequests> Limits input to <maxRequest> requests.
-xdev Exclude POST request to CRXDE.
Por ejemplo, puede ejecutarlo especificando el archivo request.log
como parámetro y mostrar las diez primeras solicitudes que tengan la mayor duración:
$ java -jar ../opt/helpers/rlog.jar -n 10 request.log
*Info * Parsed 464 requests.
*Info * Time for parsing: 22ms
*Info * Time for sorting: 2ms
*Info * Total Memory: 1mb
*Info * Free Memory: 1mb
*Info * Used Memory: 0mb
------------------------------------------------------
18051ms 31/Mar/2009:11:15:34 +0200 200 GET /content/geometrixx/en/company.html text/ html
2198ms 31/Mar/2009:11:15:20 +0200 200 GET /libs/cq/widgets.js application/x-javascript
1981ms 31/Mar/2009:11:15:11 +0200 200 GET /libs/wcm/content/welcome.html text/html
1973ms 31/Mar/2009:11:15:52 +0200 200 GET /content/campaigns/geometrixx.teasers..html text/html
1883ms 31/Mar/2009:11:15:20 +0200 200 GET /libs/security/cq-security.js application/x-javascript
1876ms 31/Mar/2009:11:15:20 +0200 200 GET /libs/tagging/widgets.js application/x-javascript
1869ms 31/Mar/2009:11:15:20 +0200 200 GET /libs/tagging/widgets/themes/default.js application/x-javascript
1729ms 30/Mar/2009:16:45:56 +0200 200 GET /libs/wcm/content/welcome.html text/html; charset=utf-8
1510ms 31/Mar/2009:11:15:34 +0200 200 GET /bin/wcm/contentfinder/asset/view.json/ content/dam?_dc=1238490934657&query=&mimeType=image&_charset_=utf-8 application/json
1462ms 30/Mar/2009:17:23:08 +0200 200 GET /libs/wcm/content/welcome.html text/html; charset=utf-8
Concatenar los archivos individuales request.log
si debe realizar esta operación en una muestra de datos de gran tamaño.
Apache Bench apache-bench
Para minimizar el impacto de los casos especiales (como la recolección de elementos no utilizados), se recomienda usar una herramienta como apachebench
(por ejemplo, ab para obtener más documentación) para ayudar a identificar las pérdidas de memoria y analizar selectivamente el tiempo de respuesta.
Apache Bench se puede utilizar de la siguiente manera:
$ ab -c 5 -k -n 1000 "https://localhost:4503/content/geometrixx/en/company.html"
This is ApacheBench, Version 2.3 <$Revision: 655654 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, https://www.zeustech.net/
Licensed to The Apache Software Foundation, https://www.apache.org/
Benchmarking localhost (be patient)
Completed 100 requests
Completed 200 requests
Completed 300 requests
Completed 400 requests
Completed 500 requests
Completed 600 requests
Completed 700 requests
Completed 800 requests
Completed 900 requests
Completed 1000 requests
Finished 1000 requests
Server Software: Day-Servlet-Engine/4.1.52
Server Hostname: localhost
Server Port: 4503
Document Path: /content/geometrixx/en/company.html
Document Length: 24127 bytes
Concurrency Level: 5
Time taken for tests: 69.766 seconds
Complete requests: 1000
Failed requests: 998
(Connect: 0, Receive: 0, Length: 998, Exceptions: 0)
Write errors: 0
Keep-Alive requests: 0
Total transferred: 24160923 bytes
HTML transferred: 24010923 bytes
Requests per second: 14.33 /sec (mean)
Time per request: 348.828 [ms] (mean)
Time per request: 69.766 [ms] (mean, across all concurrent requests)
Transfer rate: 338.20 [Kbytes/sec] received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 1 3.9 0 58
Processing: 138 347 568.5 282 8106
Waiting: 137 344 568.1 281 8106
Total: 139 348 568.4 283 8106
Percentage of the requests served within a certain time (ms)
50% 283
66% 323
75% 356
80% 374
90% 439
95% 512
98% 1047
99% 1132
100% 8106 (longest request)
Los números anteriores se toman de un portátil MAcBook Pro estándar (mediados de 2010) que accede a la página de la empresa de Geometrixx AEM, tal como se incluye en una instalación predeterminada de la. La página es sencilla, pero no está optimizada para el rendimiento.
apachebench
también muestra el tiempo por solicitud como la media en todas las solicitudes simultáneas; consulte Time per request: 54.595 [ms]
(media en todas las solicitudes simultáneas). Puede cambiar el valor del parámetro de concurrencia -c
(número de solicitudes múltiples que se realizan a la vez) para ver cualquier efecto.
Contadores de solicitudes request-counters
La información sobre el tráfico de la solicitud (número de solicitudes durante un período de tiempo específico) le proporciona una indicación de la carga de la instancia. Esta información se puede extraer de request.log, aunque el uso de contadores automatiza la recopilación de datos para permitirle ver lo siguiente:
- diferencias significativas en la actividad (es decir, diferenciar entre "muchas solicitudes" y "baja actividad")
- cuando no se está utilizando una instancia
- cualquier reinicio (los contadores se restablecen a 0)
Para automatizar la recopilación de información, también puede instalar un RequestFilter para incrementar un contador en cada solicitud. Se pueden usar varios contadores para diferentes periodos de tiempo.
La información recopilada se puede utilizar para indicar:
- cambios significativos en la actividad
- una instancia redundante
- cualquier reinicio (contador restablecido en 0)
Comentarios del HTML html-comments
Se recomienda que cada proyecto incluya html comments
para el rendimiento del servidor. Se pueden encontrar muchos buenos ejemplos públicos. Seleccione una página, abra el origen de la página para verlo y desplácese hasta la parte inferior. Se pueden ver códigos como los siguientes:
</body>
</html>
<!--
Page took 58 milliseconds to be rendered by server
-->
Monitorización del rendimiento con JConsole monitoring-performance-using-jconsole
El comando de herramienta jconsole
está disponible con el JDK.
-
AEM Inicie la instancia de.
-
Ejecutar
jconsole.
-
AEM Seleccione la instancia de la y Connect.
-
Desde la aplicación
Local
, haga doble clic encom.day.crx.quickstart.Main
; la Información general se muestra como predeterminada:Ahora puede seleccionar otras opciones.
Supervisión del rendimiento mediante (J)VisualVM monitoring-performance-using-j-visualvm
Para JDK 6-8, está disponible el comando de herramienta visualvm
. Después de instalar un JDK, puede hacer lo siguiente:
-
AEM Inicie la instancia de.
note note NOTE Si utiliza Java™ 5, puede agregar el argumento -Dcom.sun.management.jmxremote
a la línea de comandos de Java™ que inicia la JVM. JMX está habilitado de forma predeterminada con Java™ 6. -
Ejecute una de estas acciones:
jvisualvm
: en la carpeta JDK bin 1.6 (versión probada)visualvm
: se puede descargar desde VisualVM (versión de borde sangrante)
-
Desde la aplicación
Local
, haga doble clic encom.day.crx.quickstart.Main
. La Información general se muestra como predeterminada:Ahora puede seleccionar otras opciones, incluido Monitor:
Puede utilizar esta herramienta para generar volcados de hilos y volcados de cabezales de memoria. El equipo de soporte técnico suele solicitar esta información.
Recopilación de información information-collection
Conocer en la medida de lo posible su instalación puede ayudarle a averiguar qué puede haber causado un cambio en el rendimiento y si estos cambios están justificados. Recopile estas métricas a intervalos regulares para poder ver fácilmente cambios significativos.
La siguiente información puede resultar útil:
- ¿Cuántos autores están trabajando con el sistema?
- ¿Cuál es el número promedio de activaciones de página por día?
- ¿Cuántas páginas mantiene actualmente en este sistema?
- Si usa MSM, ¿cuál es el número promedio de despliegues por mes?
- ¿Cuál es el número promedio de Live Copies por mes?
- Si utiliza AEM Assets, ¿cuántos recursos mantiene actualmente en Assets?
- ¿Cuál es el tamaño promedio de los recursos?
- ¿Cuántas plantillas se están utilizando actualmente?
- ¿Cuántos componentes se utilizan actualmente?
- ¿Cuántas solicitudes por hora tiene en el sistema de creación en la hora de mayor actividad?
- ¿Cuántas solicitudes por hora tiene en el sistema de publicación en las horas de mayor actividad?
¿Cuántos autores están trabajando con el sistema? how-many-authors-are-working-with-the-system
Para ver el número de autores que han utilizado el sistema desde la instalación, utilice la línea de comandos:
cd <cq-installation-dir>/crx-quickstart/logs
cut -d " " -f 3 access.log | sort -u | wc -l
Para ver el número de autores que trabajan en una fecha determinada:
grep "<date>" access.log | cut -d " " -f 3 | sort -u | wc -l
¿Cuál es el número promedio de activaciones de página por día? what-is-the-average-number-of-page-activations-per-day
Para ver el número total de activaciones de página desde la instalación del servidor, utilice una consulta del repositorio; a través de CRXDE - Herramientas - Consulta:
-
Tipo
XPath
-
Ruta
/
-
Consulta
//element(*, cq:AuditEvent)[@cq:type='Activate']
A continuación, calcule el número de días transcurridos desde la instalación para calcular la media.
¿Cuántas páginas mantiene actualmente en este sistema? how-many-pages-do-you-currently-maintain-on-this-system
Para ver el número de páginas que hay actualmente en el servidor, utilice una consulta del repositorio; a través de CRXDE - Herramientas - Consulta:
-
Tipo
XPath
-
Ruta
/
-
Consulta
//element(*, cq:Page)
Si usa MSM, ¿cuál es el número promedio de despliegues por mes? if-you-use-msm-what-is-the-average-number-of-rollouts-per-month
Para determinar el número total de despliegues desde la instalación, utilice una consulta del repositorio; a través de CRXDE - Herramientas - Consulta:
-
Tipo
XPath
-
Ruta
/
-
Consulta
//element(*, cq:AuditEvent)[@cq:type='PageRolledOut']
Calcule el número de meses transcurridos desde la instalación para calcular la media.
¿Cuál es el número promedio de Live Copies por mes? what-is-the-average-number-of-live-copies-per-month
Para determinar el número total de Live Copies realizadas desde la instalación, utilice una consulta del repositorio; a través de CRXDE - Herramientas - Consulta:
-
Tipo
XPath
-
Ruta
/
-
Consulta
//element(*, cq:LiveSyncConfig)
Utilice de nuevo el número de meses transcurridos desde la instalación para calcular la media.
Si utiliza AEM Assets, ¿cuántos recursos mantiene actualmente en Assets? if-you-use-aem-assets-how-many-assets-do-you-currently-maintain-in-assets
Para ver cuántos recursos DAM mantiene actualmente, utilice una consulta del repositorio; a través de CRXDE - Herramientas - Consulta:
- Tipo
XPath
- Ruta
/
- Consulta
/jcr:root/content/dam//element(*, dam:Asset)
¿Cuál es el tamaño promedio de los recursos? what-is-the-average-size-of-the-assets
Para determinar el tamaño total de la /var/dam
carpeta:
-
Utilice WebDAV para asignar el repositorio al sistema de archivos local.
-
Utilice la línea de comandos:
code language-shell cd /Volumes/localhost/var du -sh dam/
Para obtener el tamaño promedio, divida el tamaño global por el número total de recursos en
/var/dam
(obtenido anteriormente).
¿Cuántas plantillas se están utilizando actualmente? how-many-templates-are-currently-used
Para ver el número de plantillas que hay actualmente en el servidor, utilice una consulta del repositorio; a través de CRXDE - Herramientas - Consulta:
- Tipo
XPath
- Ruta
/
- Consulta
//element(*, cq:Template)
¿Cuántos componentes se utilizan actualmente? how-many-components-are-currently-used
Para ver el número de componentes que hay actualmente en el servidor, utilice una consulta del repositorio; a través de CRXDE - Herramientas - Consulta:
- Tipo
XPath
- Ruta
/
- Consulta
//element(*, cq:Component)
¿Cuántas solicitudes por hora tiene en el sistema de creación en la hora de mayor actividad? how-many-requests-per-hour-do-you-have-on-the-author-system-at-peak-time
Para determinar las solicitudes por hora que tiene en el sistema de creación en la hora de mayor actividad:
-
Para determinar el número total de solicitudes desde la instalación, utilice la línea de comandos:
code language-shell cd <cq-installation-dir>/crx-quickstart/logs grep -R "\->" request.log | wc -l
-
Para determinar las fechas de inicio y finalización:
code language-shell vim request.log G / 1G: for the last/first lines
Utilice estos valores para calcular la cantidad de horas que han transcurrido desde la instalación y, a continuación, el número promedio de solicitudes por hora.
¿Cuántas solicitudes por hora tiene en el sistema de publicación en las horas de mayor actividad? how-many-requests-per-hour-do-you-have-on-the-publish-system-at-peak-time
Repita el procedimiento anterior en la instancia de publicación.
Análisis de escenarios específicos analyzing-specific-scenarios
A continuación se muestra una lista de sugerencias sobre qué comprobar si comienza a experimentar ciertos problemas de rendimiento. La lista (lamentablemente) no es completa.
CPU al 100% cpu-at
Si la CPU del sistema se ejecuta constantemente al 100%, consulte lo siguiente:
-
Base de conocimiento:
Memoria insuficiente out-of-memory
Aunque estos errores deben detectarse durante el desarrollo y la prueba, algunos escenarios pueden saltarse.
Si el sistema se está quedando sin memoria, este problema se puede ver de varias maneras, incluida la degradación del rendimiento y los mensajes de error, incluido el subtexto:
java.lang.OutOfMemoryError
En estos casos, compruebe:
-
AEM La configuración de JVM usada para iniciar
-
Base de conocimiento:
E/S de disco disk-i-o
Si el sistema se está quedando sin espacio en disco o nota que se ha golpeado el disco, consulte:
-
Si ha deshabilitado la recopilación de información de depuración, puede configurarse en varias ubicaciones, incluidas las siguientes:
-
Si ha configurado Versión purga de y cómo lo ha hecho 🔗
-
Base de conocimiento:
Degradación regular del rendimiento regular-performance-degradation
Si ve que el rendimiento de su instancia se deteriora después de cada reinicio (a veces una semana o más tarde), se puede comprobar lo siguiente:
-
Base de conocimiento:
Ajuste de JVM jvm-tuning
La máquina virtual Java™ (JVM) ha mejorado en cuanto a la optimización (especialmente desde Java™ 7). Por lo tanto, a menudo resulta adecuado especificar un tamaño de JVM fijo razonable y utilizar los valores predeterminados.
Si la configuración predeterminada no es adecuada, es importante establecer un método para supervisar y evaluar el rendimiento de GC. Hágalo antes de intentar ajustar la JVM. Este proceso puede incluir factores de monitorización, como el tamaño de la pila, el algoritmo y otros aspectos.
Algunas opciones comunes son:
-
VerboseGC:
code language-none -verbose:gc \ -Xloggc:$LOGS/verbosegc.log \ -XX:+PrintGCDetails \ -XX:+PrintGCDateStamps
El registro resultante se puede ingerir mediante un visualizador GC como:
[https://www.ibm.com/developerworks/library/j-ibmtools2/](https://www.ibm.com/developerworks/library/j-ibmtools2/)
O JConsole:
-
Esta configuración es para una conexión JMX "totalmente abierta":
code language-none -Dcom.sun.management.jmxremote \ -Dcom.sun.management.jmxremote.port=8889 \ -Dcom.sun.management.jmxremote.authenticate=false \ -Dcom.sun.management.jmxremote.ssl=false
-
A continuación, conéctese a JVM con JConsole; consulte lo siguiente:
[https://docs.oracle.com/javase/8/docs/technotes/guides/management/jconsole.html](https://docs.oracle.com/javase/8/docs/technotes/guides/management/jconsole.html)
Puede ver cuánta memoria se está utilizando, qué algoritmos de GC se están utilizando, cuánto tardan en ejecutarse y qué efecto tiene este proceso en el rendimiento de la aplicación. Sin él, la sintonización es solo "perillas giratorias aleatoriamente".