限制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"/>
recommendation-more-help
3d58f420-19b5-47a0-a122-5c9dab55ec7f