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