AEM DAM에서 ImageMagick 메모리 사용량 제한

이 문서는 ImageMagick 변환 프로세스에서 메모리 소비를 제한하는 방법에 대해 알아봅니다. ImageMagick은 메모리, 맵, 디스크 및 파일 제한을 포함하여 리소스 사용을 제어할 수 있는 몇 가지 옵션을 제공합니다. -limit 옵션을 사용하여 설정할 수 있습니다.

설명 description

환경

  • AEM(Adobe Experience Manager)

문제/증상

Adobe Experience Manager의 DAM(Digital Asset Management) ImageMagick은 많은 메모리를 사용합니다. .ai 에셋이 업로드되면(MIME 유형 애플리케이션/postscript) 수집 워크플로우가 ImageMagick 프로세스를 호출하여 썸네일을 생성합니다. ImageMagick은 많은 메모리를 사용합니다(예: 프로세스당 최소 15%의 메모리).

.ai 유형의 에셋 5개가 업로드되면 ImageMagick이 시스템의 모든 메모리를 소모하고 AEM을 다운합니다.

ImageMagick 변환 프로세스에서 메모리 소비를 제한할 수 있는 방법이 있습니까?

해결 방법 resolution

ImageMagick은 메모리, 맵, 디스크 및 파일 제한을 포함하여 리소스 사용을 제어할 수 있는 몇 가지 옵션을 제공합니다. -limit 옵션을 사용하여 설정할 수 있습니다.

-limit 옵션을 사용하면 전환 프로세스에 대한 다양한 리소스 제한을 설정할 수 있습니다. 메모리 제한을 설정하는 구문은 다음과 같습니다.

convert -limit 메모리 <> input_image output_image

여기서 *< value>*는 프로세스가 사용할 수 있는 최대 메모리 양(바이트)입니다. 읽기 쉽도록 MB의 경우 MB 또는 GB의 경우 GB와 같은 접미사를 사용할 수 있습니다.

예:

메모리 사용을 500MB로 제한하려면 다음을 실행합니다.

convert -limit 메모리 500MB input_image.jpg output_image.jpg

메모리 외에 다른 리소스를 제한할 수도 있습니다.

  • 맵: 메모리 맵 사용량 제한
  • 디스크: 디스크 공간 사용량을 제한합니다.
  • 파일: 열려 있는 파일 수를 제한합니다.

구문은 메모리 제한과 유사합니다.

convert -limit map 1GB -limit disk 2GB -limit 파일 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