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