Begränsa ImageMagick-minnesanvändningen i AEM DAM

I den här artikeln beskrivs hur du begränsar minnesanvändningen i ImageMagick-konverteringsprocessen. ImageMagick har flera alternativ för att styra resursanvändningen, bland annat minnes-, mappnings-, disk- och filbegränsningar. Dessa kan anges med alternativet -limit.

Beskrivning description

Miljö

  • Adobe Experience Manager (AEM)

Problem/symtom

Adobe Experience Manager DAM (Digital Asset Management) ImageMagick förbrukar mycket minne. När AI-resurser överförs (MIME-typprogram/PostScript) anropas ImageMagick-processen för att generera miniatyrbilder. ImageMagick förbrukar mycket minne (till exempel minst 15 % av minnet per process).

Om fem resurser av typen .ai överförs förbrukar ImageMagick allt minne i systemet och AEM ned.

Finns det något sätt att begränsa minnesanvändningen i ImageMagick-konverteringsprocessen?

Upplösning resolution

ImageMagick har flera alternativ för att styra resursanvändningen, bland annat minnes-, mappnings-, disk- och filbegränsningar. Dessa kan anges med alternativet -limit.

Med alternativet -limit kan du ange olika resursgränser för konverteringsprocessen. Syntaxen för att ange en minnesgräns är följande:

convert -limit memory < value> input_image output_image

Där *< värde >*är den maximala mängden minne (i byte) som processen kan använda. Du kan använda suffix som MB för megabyte eller GB för gigabyte för att göra dem mer läsbara.

Exempel:

Om du vill begränsa minnesanvändningen till 500 MB kör du:

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

Förutom minne kan du även begränsa andra resurser:

  • Karta: Begränsar mängden minnesmappningsanvändning.
  • Disk: Begränsar mängden diskutrymme som används.
  • Fil: Begränsar antalet öppna filer.

Syntaxen liknar minnesgränsen:

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

Du kan också ange standardresursgränser genom att ändra konfigurationsfilen för principen ImageMagick, som vanligtvis finns på /etc/ImageMagick-6/policy.xml eller /etc/ImageMagick-7/policy.xml beroende på version.

Här följer ett exempel på hur du ställer in dessa gränser i konfigurationsfilen:

<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