Limitation de la consommation de mémoire ImageMagick dans AEM DAM

Cet article vous aide à découvrir comment limiter la consommation de mémoire dans le processus de conversion ImageMagick. ImageMagick propose plusieurs options pour contrôler l’utilisation des ressources, notamment la mémoire, la carte, le disque et les limites de fichiers. Ils peuvent être définis à l’aide de l’option -limit .

Description description

Environnement

  • Adobe Experience Manager (AEM)

Problème/Symptômes

Adobe Experience Manager DAM (Digital Asset Management) ImageMagick consomme beaucoup de mémoire. Lorsque des ressources .ai sont chargées (type MIME application/postscript), le processus d’ingestion appelle le processus ImageMagick pour générer des miniatures. ImageMagick consomme beaucoup de mémoire (par exemple, un minimum de 15 % de la mémoire par processus).

Si cinq ressources de type .ai sont chargées, ImageMagick consomme toute la mémoire dans le système et AEM l’affiche.

Existe-t-il un moyen de restreindre la consommation de mémoire dans le processus de conversion ImageMagick ?

Résolution resolution

ImageMagick propose plusieurs options pour contrôler l’utilisation des ressources, notamment la mémoire, la carte, le disque et les limites de fichiers. Ils peuvent être définis à l’aide de l’option -limit .

L’option -limit vous permet de définir diverses limites de ressources pour le processus de conversion. La syntaxe permettant de définir une limite de mémoire est la suivante :

convert -limit memory < value> input_image output_image

Où *< value>*est la quantité maximale de mémoire (en octets) que le processus est autorisé à utiliser. Vous pouvez utiliser des suffixes tels que Mo pour les mégaoctets ou Go pour les gigaoctets afin de le rendre plus lisible.

Exemple :

Pour limiter l’utilisation de la mémoire à 500 Mo, procédez comme suit :

convert -limit memory 500 MB input_image.jpg output_image.jpg

Outre la mémoire, vous pouvez également limiter d’autres ressources :

  • Carte : limite la quantité d’utilisation de la carte mémoire.
  • Disque : limite la quantité d’espace disque utilisée.
  • Fichier : limite le nombre de fichiers ouverts.

La syntaxe est similaire à la limite de mémoire :

convert -limit map 1GB -limit disk 2GB -limit file 50 input_image.jpg output_image.jpg

Vous pouvez également définir des limites de ressources par défaut en modifiant le fichier de configuration de la stratégie ImageMagick, généralement situé à l’emplacement /etc/ImageMagick-6/policy.xml ou /etc/ImageMagick-7/policy.xml en fonction de votre version.

Voici un exemple de définition de ces limites dans le fichier de configuration :

<policymap>
<policy domain="resource" name="memory" value="500MB"/>
<policy domain="resource" name="map" value="1GB"/>
<policy domain="resource" name="disk" value="2GB"/>
<policy domain="resource" name="file" value="50"/>
recommendation-more-help
3d58f420-19b5-47a0-a122-5c9dab55ec7f