Un Experience Manager Assets la instalación contiene una serie de componentes de hardware, software y red. Según el escenario de implementación, es posible que necesite realizar cambios de configuración específicos en los componentes de hardware, software y red para eliminar los cuellos de botella de rendimiento.
Además, la identificación y el cumplimiento de determinadas directrices de optimización de hardware y software ayudan a crear una base sólida que permite Experience Manager Assets implementación para cumplir con las expectativas de rendimiento, escalabilidad y fiabilidad.
Rendimiento deficiente en Experience Manager Assets puede afectar a la experiencia del usuario en cuanto a rendimiento interactivo, procesamiento de recursos, velocidad de descarga y otras áreas.
De hecho, la optimización del rendimiento es una tarea fundamental que se realiza antes de establecer métricas de destino para cualquier proyecto.
Estas son algunas áreas de enfoque clave en torno a las cuales se descubren y corrigen problemas de rendimiento antes de que afecten a los usuarios.
Aunque Experience Manager es compatible con una serie de plataformas, Adobe ha encontrado la buena compatibilidad con las herramientas nativas en Linux y Windows, lo que contribuye a un rendimiento óptimo y a una implementación sencilla. Lo ideal es implementar un sistema operativo de 64 bits para satisfacer los altos requisitos de memoria de un Experience Manager Assets implementación. Como con cualquier implementación de Experience Manager, debe implementar TarMK siempre que sea posible. Aunque TarMK no puede escalar más allá de una sola instancia de autor, se encuentra que tiene un mejor rendimiento que MongoMK. Puede añadir instancias de descarga de TarMK para aumentar la potencia de procesamiento del flujo de trabajo de su Experience Manager Assets implementación.
Para mejorar los tiempos de carga de los recursos, utilice un almacenamiento de alto rendimiento para el directorio temporal de Java. En Linux y Windows, se podría utilizar una unidad RAM o SSD. En entornos basados en la nube, se podría utilizar un tipo de almacenamiento de alta velocidad equivalente. Por ejemplo, en Amazon EC2, una impulso efímero se puede utilizar para la carpeta temporal.
Si el servidor tiene suficiente memoria, configure una unidad de RAM. En Linux, ejecute estos comandos para crear una unidad de 8 GB de RAM:
mkfs -q /dev/ram1 800000
mkdir -p /mnt/aem-tmp
mount /dev/ram1 /mnt/aem-tmp
df -H | grep aem-tmp
En el sistema operativo Windows, utilice un controlador de terceros para crear una unidad RAM o simplemente utilice un almacenamiento de alto rendimiento como SSD.
Una vez que el volumen temporal de alto rendimiento esté listo, establezca el parámetro JVM -Djava.io.tmpdir
. Por ejemplo, puede añadir el parámetro JVM siguiente al CQ_JVM_OPTS
en la variable bin/start
script de Experience Manager:
-Djava.io.tmpdir=/mnt/aem-tmp
Adobe recomienda implementar Experience Manager Assets en Java 8 para un rendimiento óptimo.
Establezca los siguientes parámetros de JVM:
-XX:+UseConcMarkSweepGC
-Doak.queryLimitInMemory
=500000-Doak.queryLimitReads
=100000-Dupdate.limit
=250000-Doak.fastQuerySize
=trueSe recomienda separar el almacén de datos del almacén de segmentos para todos Experience Manager Assets usuarios. Además, la configuración de maxCachedBinarySize
y cacheSizeInMB
Los parámetros de pueden ayudar a maximizar el rendimiento. Establecer maxCachedBinarySize
hasta el tamaño de archivo más pequeño que se pueda guardar en la caché. Especifique el tamaño de la caché en memoria que se utilizará para el almacén de datos en cacheSizeInMB
. El Adobe recomienda establecer este valor entre el 2 y el 10 por ciento del tamaño total de la pila. Sin embargo, las pruebas de carga y rendimiento pueden ayudar a determinar la configuración ideal.
Al cargar grandes cantidades de recursos en Adobe Experience Manager, para permitir picos inesperados en el consumo de memoria y evitar que JVM falle con OutOfMemoryErrors, reduzca el tamaño máximo configurado de la caché de imágenes almacenadas en búfer. Pongamos un ejemplo de que tiene un sistema con una pila máxima (-) Xmx
param) de 5 GB, un Oak BlobCache establecido en 1 GB y un cache de documentos establecido en 2 GB. En este caso, la caché almacenada en búfer tardaría un máximo de 1,25 GB y memoria, lo que dejaría solo 0,75 GB de memoria para picos inesperados.
Configure el tamaño de la caché almacenada en búfer en la consola web de OSGi. En https://host:port/system/console/configMgr/com.day.cq.dam.core.impl.cache.CQBufferedImageCache
, establezca la propiedad cq.dam.image.cache.max.memory
en bytes. Por ejemplo, 1073741824 es 1 GB (1024 x 1024 x 1024 = 1 GB).
Desde el Experience Manager 6.1 SP1, si utiliza un sling:osgiConfig
para configurar esta propiedad, asegúrese de establecer el tipo de datos en Long. Para obtener más información, consulte CQBufferedImageCache consume montón durante las cargas de recursos.
La implementación de un almacén de datos de archivos compartidos o S3 puede ayudar a ahorrar espacio en disco y aumentar el rendimiento de la red en implementaciones a gran escala. Para obtener más información sobre las ventajas y desventajas de utilizar un almacén de datos compartido, consulte Guía de tamaño de Assets.
La siguiente configuración del almacén de datos de S3 ( org.apache.jackrabbit.oak.plugins.blob.datastore.S3DataStore.cfg
) ayudó al Adobe a extraer 12,8 TB de objetos binarios grandes (BLOB) de un almacén de datos de archivo existente en un almacén de datos S3 en un sitio de cliente:
accessKey=<snip>
secretKey=<snip>
s3Bucket=<snip>
s3Region=us-standard
s3EndPoint=<a href="https://s3.amazonaws.com/">s3.amazonaws.com</a>
connectionTimeout=120000
socketTimeout=120000
maxConnections=80
writeThreads=60
concurrentUploadsThreads=30
asyncUploadLimit=30
maxErrorRetry=1000
path=/opt/author/crx-quickstart/repository/datastore
s3RenameKeys=false
s3Encryption=SSE_S3
proactiveCaching=true
uploadRetries=1000
migrateFailuresCount=400
Adobe recomienda habilitar HTTPS porque muchas empresas tienen servidores de seguridad que detectan el tráfico HTTP, lo que afecta negativamente a las cargas y corrompe los archivos. Para cargas de archivos grandes, asegúrese de que los usuarios tengan conexiones cableadas a la red, ya que la red WiFi se satura rápidamente. Para obtener instrucciones sobre cómo identificar cuellos de botella de red, consulte Guía de tamaño de Assets. Para evaluar el rendimiento de la red mediante el análisis de la topología de red, consulte Consideraciones de red de Assets.
Principalmente, la estrategia de optimización de la red depende de la cantidad de ancho de banda disponible y de la carga de su Experience Manager ejemplo. Las opciones de configuración comunes, incluidos los servidores de seguridad o los servidores proxy, pueden ayudar a mejorar el rendimiento de la red. A continuación se indican algunos puntos clave que se deben tener en cuenta:
Siempre que sea posible, configure el Recurso de actualización DAM flujo de trabajo a Transitorio. La configuración reduce significativamente los costes generales necesarios para procesar flujos de trabajo porque, en este caso, los flujos de trabajo no tienen que pasar por los procesos normales de seguimiento y archivo.
Vaya a /miscadmin
en el Experience Manager implementación en https://[aem_server]:[port]/miscadmin
.
Expandir Herramientas > Flujo de trabajo > Modelos > presa.
Abrir Recurso de actualización DAM. En el panel de herramientas flotante, cambie a Página y haga clic en Propiedades de página.
Seleccionar Flujo de trabajo transitorio y haga clic en OK.
Algunas funciones no admiten flujos de trabajo transitorios. Si su Assets la implementación requiere estas funciones, no configure flujos de trabajo transitorios.
En los casos en que no se puedan utilizar flujos de trabajo transitorios, ejecute la depuración de flujos de trabajo regularmente para eliminar los flujos de trabajo archivados Recurso de actualización DAM flujos de trabajo para garantizar que el rendimiento del sistema no se degrada.
Normalmente, ejecuta los flujos de trabajo de depuración de forma semanal. Sin embargo, en situaciones que requieren muchos recursos, como durante la ingesta de recursos a gran escala, puede ejecutarla con mayor frecuencia.
Para configurar la depuración del flujo de trabajo, añada una nueva configuración de depuración del flujo de trabajo de Granite de Adobe a través de la consola OSGi. A continuación, configure y programe el flujo de trabajo como parte de la ventana de mantenimiento semanal.
Si la depuración se ejecuta durante demasiado tiempo, se agota el tiempo de espera. Por lo tanto, debe asegurarse de que los trabajos de depuración se completen para evitar situaciones en las que los flujos de trabajo de depuración no se completen debido al alto número de flujos de trabajo.
Por ejemplo, después de ejecutar numerosos flujos de trabajo no transitorios (lo que crea nodos de instancia de flujo de trabajo), puede ejecutar AEM Eliminador de flujo de trabajo de ACS Commons de forma ad hoc. Elimina inmediatamente las instancias de flujo de trabajo redundantes y completadas, en lugar de esperar a que se ejecute el programador de depuración del flujo de trabajo de Granite de Adobe.
De forma predeterminada, Experience Manager ejecuta un número máximo de trabajos paralelos igual al número de procesadores del servidor. El problema con esta configuración es que durante los períodos de carga pesada, todos los procesadores están ocupados por Recurso de actualización DAM flujos de trabajo, ralentizar la respuesta de la IU y evitar Experience Manager de ejecutar otros procesos que salvaguarden el rendimiento y la estabilidad del servidor. Como práctica recomendada, establezca este valor en la mitad de los procesadores disponibles en el servidor realizando los siguientes pasos:
Activado Experience Manager Autor, acceso https://[aem_server]:[port]/system/console/slingevent
.
Clic Editar en cada cola de flujo de trabajo relevante para la implementación, por ejemplo Cola de flujo de trabajo transitorio de Granite.
Actualizar el valor de Máximo de trabajos paralelos y haga clic en Guardar.
Establecer una cola en la mitad de los procesadores disponibles es una solución viable para empezar. Sin embargo, es posible que tenga que aumentar o disminuir este número para lograr el máximo rendimiento y ajustarlo por entorno. Hay colas independientes para flujos de trabajo transitorios y no transitorios, así como otros procesos, como flujos de trabajo externos. Si varias colas configuradas al 50% de los procesadores están activas simultáneamente, el sistema puede sobrecargarse rápidamente. Las colas muy utilizadas varían en gran medida entre las implementaciones de los usuarios. Por lo tanto, es posible que tenga que configurarlos cuidadosamente para lograr la máxima eficiencia sin sacrificar la estabilidad del servidor.
El Recurso de actualización DAM El flujo de trabajo de contiene un conjunto completo de pasos configurados para tareas como, por ejemplo, la generación de PTIFF de Dynamic Media y Adobe InDesign Server integración. Sin embargo, es posible que la mayoría de los usuarios no requieran varios de estos pasos. El Adobe recomienda crear una copia personalizada del Recurso de actualización DAM modelo de flujo de trabajo y elimine los pasos innecesarios. En este caso, actualice los iniciadores para Recurso de actualización DAM para apuntar al nuevo modelo.
Ejecución de la Recurso de actualización DAM Un flujo de trabajo intensivo puede aumentar considerablemente el tamaño del almacén de datos de archivos. Los resultados de un experimento realizado por Adobe han mostrado que el tamaño del almacén de datos puede aumentar en aproximadamente 400 GB si se realizan alrededor de 5500 flujos de trabajo en un plazo de 8 horas.
Se trata de un aumento temporal y el almacén de datos vuelve a su tamaño original después de ejecutar la tarea de recolección de elementos no utilizados del almacén de datos.
Normalmente, la tarea de recolección de elementos no utilizados del almacén de datos se ejecuta semanalmente junto con otras tareas de mantenimiento programadas.
Si tiene un espacio en disco limitado y ejecuta Recurso de actualización DAM flujos de trabajo de forma intensiva, considere la posibilidad de programar la tarea de recolección de elementos no utilizados con mayor frecuencia.
Los clientes utilizan imágenes de diversos tamaños y formatos en su sitio web o para su distribución a socios comerciales. Dado que cada representación aumenta el espacio del recurso en el repositorio, Adobe recomienda utilizar esta función con prudencia. Para reducir la cantidad de recursos necesarios para procesar y almacenar imágenes, puede generar estas imágenes en tiempo de ejecución en lugar de como representaciones durante la ingesta.
Muchos clientes de Sites implementan un servlet de imagen que cambia de tamaño y recorta las imágenes en el momento en que se solicitan, lo que impone una carga adicional a la instancia de publicación. Sin embargo, mientras estas imágenes se puedan almacenar en caché, el desafío se puede mitigar.
Un enfoque alternativo es utilizar la tecnología de Dynamic Media para manipular las imágenes por completo. Además, puede implementar Brand Portal que no solo se haga cargo de las responsabilidades de generación de representaciones desde Experience Manager , pero también todo el nivel de publicación.
Si personaliza la variable Recurso de actualización DAM flujo de trabajo para generar representaciones mediante ImageMagick, Adobe recomienda modificar policy.xml
archivo en /etc/ImageMagick/
. De forma predeterminada, ImageMagick utiliza todo el espacio disponible en disco en el volumen del sistema operativo y la memoria disponible. Realice los siguientes cambios de configuración en la policymap
sección de policy.xml
para limitar estos recursos.
<policymap>
<!-- <policy domain="system" name="precision" value="6"/> -->
<policy domain="resource" name="temporary-path" value="/ephemeral0/imagemagick_tmp"/>
<policy domain="resource" name="memory" value="1000MiB"/>
<policy domain="resource" name="map" value="1000MiB"/>
<!-- <policy domain="resource" name="area" value="1gb"/> -->
<policy domain="resource" name="disk" value="10000MiB"/>
<!-- <policy domain="resource" name="file" value="768"/> -->
<policy domain="resource" name="thread" value="1"/>
<policy domain="resource" name="throttle" value="50"/>
<!-- <policy domain="resource" name="time" value="3600"/> -->
</policymap>
Además, establezca la ruta de la carpeta temporal de ImageMagick en configure.xml
(o configurando la variable de entorno) MAGICK_TEMPORARY_PATH
) a una partición de disco que tenga suficiente espacio e IOPS.
Una configuración incorrecta puede hacer que el servidor sea inestable si ImageMagick utiliza todo el espacio en disco disponible. Los cambios de directiva necesarios para procesar archivos grandes mediante ImageMagick pueden afectar al Experience Manager rendimiento. Para obtener más información, consulte instalar y configurar ImageMagick.
ImageMagick policy.xml
y configure.xml
Los archivos de están disponibles en /usr/lib64/ImageMagick-*/config/
en lugar de /etc/ImageMagick/
.Consulte Documentación de ImageMagick para la ubicación de los archivos de configuración.
Si está utilizando Experience Manager en Adobe Managed Services (AMS), póngase en contacto con Asistencia al cliente de Adobe si tiene pensado procesar muchos archivos PSD o PSB de gran tamaño. Póngase en contacto con el departamento de Asistencia al cliente de Adobe para implementar estas prácticas recomendadas en su implementación de AMS y para elegir las mejores herramientas y modelos posibles para los formatos propietarios de Adobe. Experience Manager puede que no procese archivos PSB de muy alta resolución que tengan más de 30000 x 23000 píxeles.
XMP La reescritura de datos actualiza el recurso original cada vez que se modifican los metadatos en Experience Manager, lo que da como resultado lo siguiente:
Los resultados enumerados consumen recursos considerables. Por lo tanto, el Adobe XMP recomienda desactivar la reescritura de la escritura de la si no es necesaria. Para obtener más información, consulte XMP respuesta de escritura de la.
XMP La importación de una gran cantidad de metadatos puede dar como resultado una actividad de reescritura de recursos intensivos en recursos si se marca el indicador de ejecución de flujos de trabajo. Planifique una importación de este tipo durante el uso del servidor lean para que el rendimiento de otros usuarios no se vea afectado.
Al replicar recursos en un gran número de instancias de publicación, por ejemplo en una implementación de Sites, Adobe recomienda utilizar la replicación en cadena. En este caso, la instancia de autor se replica en una sola instancia de publicación, que a su vez se replica en las demás instancias de publicación, liberando la instancia de autor.
El Adobe no recomienda la activación automática de recursos. Sin embargo, si es necesario, Adobe recomienda hacerlo como el paso final de un flujo de trabajo, normalmente Recurso de actualización DAM.
Instalar los paquetes de servicio más recientes y revisiones relacionadas con el rendimiento, ya que suelen incluir actualizaciones de los índices del sistema. Consulte consejos para optimizar el rendimiento para algunas optimizaciones de índice.
Cree índices personalizados para consultas que ejecute con frecuencia. Para obtener más información, consulte metodología para analizar consultas lentas y crear índices personalizados. Para obtener información adicional sobre las prácticas recomendadas de consultas e índices, consulte Prácticas recomendadas para consultas e indexación.
Se pueden realizar algunas optimizaciones en las configuraciones del índice de Oak que pueden ayudar a mejorar Experience Manager Assets rendimiento. Actualice las configuraciones de índice para mejorar el tiempo de reindexación:
/crx/de/index.jsp
e inicie sesión como usuario administrativo./oak:index/lucene
.String[]
propiedad excludedPaths
con valores /var
, /etc/workflow/instances
, y /etc/replication
./oak:index/damAssetLucene
. Añadir un String[]
propiedad includedPaths
con valor /content/dam
. Guardar cambios.Si los usuarios no necesitan realizar búsquedas de texto completo de recursos, por ejemplo, buscando texto en documentos del PDF, deshabilite la búsqueda. Se mejora el rendimiento del índice al deshabilitar la indexación de texto completo. Para deshabilitar Apache Lucene extracción de texto, siga estos pasos:
Cuando cree consultas que generen grandes conjuntos de resultados, utilice el guessTotal
para evitar un uso intensivo de la memoria al ejecutarlos.
Hay dos problemas conocidos importantes relacionados con los archivos grandes en Experience Manager. Cuando los archivos alcanzan tamaños de bueno de 2 GB, la sincronización en espera en frío puede quedarse sin memoria. En algunos casos, evita que se ejecute la sincronización en espera. En otros casos, hace que la instancia principal se bloquee. Este escenario se aplica a cualquier archivo de Experience Manager superior a 2 GB, incluidos los paquetes de contenido.
Del mismo modo, cuando los archivos alcanzan los 2 GB de tamaño mientras se utiliza un almacén de datos S3 compartido, puede tardar algún tiempo en persistir completamente desde la caché al sistema de archivos. Como resultado, cuando se utiliza la replicación sin binarios, es posible que los datos binarios no se hayan mantenido antes de que finalice la replicación. Esta situación puede dar lugar a problemas, especialmente si la disponibilidad de datos es importante.
Para cada Experience Manager , establezca un régimen de pruebas de rendimiento que pueda identificar y resolver los cuellos de botella rápidamente. Estas son algunas áreas clave en las que centrarse.
Para todos los problemas de rendimiento de red del cliente, realice las siguientes tareas:
Para minimizar la latencia y lograr un alto rendimiento a través de un uso eficiente de la CPU y el uso compartido de la carga, monitorice el rendimiento de su Experience Manager implementación con regularidad. En particular: