限制AEM DAM中的ImageMagick記憶體消耗
本文可協助您瞭解如何限制ImageMagick轉換程式中的記憶體消耗。 ImageMagick提供數個控制資源使用的選項,包括記憶體、對應、磁碟和檔案限制。 可使用 -limit 選項設定這些專案。
說明 description
環境
- Adobe Experience Manager (AEM)
問題/症狀
Adobe Experience Manager的DAM (數位資產管理) ImageMagick會耗用大量記憶體。 上傳.ai資產時(MIME型別application/postscript),擷取工作流程會呼叫ImageMagick程式以產生縮圖。 ImageMagick會消耗大量記憶體(例如,每個處理程式至少要佔用15%的記憶體)。
如果上傳了五個.ai型別的資產,ImageMagick會消耗系統中的所有記憶體,並導致AEM關閉。
是否有任何方法可限制ImageMagick轉換程式中的記憶體耗用量?
解決方法 resolution
ImageMagick提供數個控制資源使用的選項,包括記憶體、對應、磁碟和檔案限制。 可使用 -limit 選項設定這些專案。
-limit 選項可讓您為轉換程式設定各種資源限制。 設定記憶體限制的語法如下:
轉換 — 限制記憶體<
值>
input_image output_image
其中*<
值>
*是處理程式允許使用的最大記憶體數量(位元組)。 您可以使用MB或GB等尾碼來代表MB或GB來代表GB,使其更易讀取。
範例:
若要將記憶體使用量限製為500MB,請執行:
轉換 — 限制記憶體500MB input_image.jpg output_image.jpg
除了記憶體之外,您也可以限制其他資源:
- 對應:限制記憶體對應使用量。
- 磁碟:限制磁碟空間使用量。
- 檔案:限制開啟的檔案數目。
語法與記憶體限制類似:
轉換 — 限制對應1GB — 限制磁碟2GB — 限制檔案50 input_image.jpg output_image.jpg
您也可以修改ImageMagick原則組態檔(通常位於 /etc/ImageMagick-6/policy.xml 或 /etc/ImageMagick-7/policy.xml,視您的版本而定)來設定預設資源限制。
以下是如何在設定檔案中設定這些限制的範例:
<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"/>