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"/>