콘텐츠로 이동
📣 인포그랩에서 OpenAI 기술 기반으로 자체 개발한 자동화 번역 프로그램을 통해 n8n 공식 문서의 한글판을 국내 최초로 제공합니다.

메모리 관련 오류#

n8n은 각 노드가 가져오고 처리할 수 있는 데이터 양을 제한하지 않습니다. 이는 자유를 제공하지만, 워크플로우 실행이 사용 가능한 메모리보다 더 많은 메모리를 필요로 할 때 오류가 발생할 수 있습니다. 이 페이지에서는 이러한 오류를 식별하고 피하는 방법을 설명합니다.

자가 호스팅 n8n 전용

이 페이지는 자가 호스팅 n8n 시의 메모리 관련 오류를 설명합니다. n8n Cloud에 대한 메모리 한계를 배우려면 Cloud data management를 방문하세요.

메모리 부족 상황 식별하기#

n8n은 메모리 부족 상황에서 경고하는 오류 메시지를 제공합니다. 예를 들어, 이 노드에서 실행이 중단되었습니다 (n8n이 실행 중 메모리가 부족했을 수 있습니다)와 같은 메시지입니다.

Workflow 실행 중 문제, 연결 끊김, 또는 503 서비스 일시적으로 사용할 수 없음 같은 오류 메시지는 n8n 인스턴스가 사용할 수 없게 되었음을 나타냅니다.

자가 호스팅 n8n을 사용할 경우, 서버 로그에서 Allocation failed - JavaScript heap out of memory와 같은 오류 메시지를 볼 수도 있습니다.

n8n Cloud 또는 n8n의 Docker 이미지를 사용할 때 n8n은 이러한 문제 발생 시 자동으로 재시작됩니다. 그러나 npm으로 n8n을 실행할 때는 수동으로 재시작해야 할 수도 있습니다.

일반적인 원인#

이러한 문제는 워크플로우 실행이 n8n 인스턴스에 할당된 메모리보다 더 많은 메모리를 필요로 할 때 발생합니다. 워크플로우 실행의 메모리 사용량을 증가시키는 요소는 다음과 같습니다:

  • JSON 데이터의 양.
  • 바이너리 데이터의 크기.
  • 워크플로우의 노드 수.
  • 일부 노드는 메모리를 많이 사용합니다: Code 노드와 구형 Function 노드는 메모리 소비를 상당히 증가시킬 수 있습니다.
  • 수동 또는 자동 워크플로우 실행: 수동 실행은 n8n이 프론트엔드용 데이터를 복사하기 때문에 메모리 소비를 증가시킵니다.
  • 동시에 실행 중인 추가적인 워크플로우.

메모리 부족 상황 피하기#

메모리 부족 상황에 처했을 때 두 가지 옵션이 있습니다: n8n에 할당된 메모리를 늘리거나 메모리 소비를 줄이는 것입니다.

사용 가능한 메모리 늘리기#

자가 호스팅 n8n을 사용할 경우, n8n이 사용할 수 있는 메모리를 늘리는 것은 n8n 인스턴스에 추가 메모리를 프로비저닝하는 것을 의미합니다. 이는 호스팅 제공업체에 추가 비용이 발생할 수 있습니다.

n8n Cloud에서는 더 큰 요금제로 업그레이드해야 합니다.

메모리 소비 줄이기#

이 접근 방식은 더 복잡하며 문제를 일으키는 워크플로우를 재구성해야 합니다. 이 섹션에서는 메모리 소비를 줄이는 방법에 대한 몇 가지 지침을 제공합니다. 모든 제안이 모든 워크플로우에 적용되는 것은 아닙니다.

  • 처리할 데이터를 더 작은 청크로 나눕니다. 예를 들어, 한 번의 실행에서 10,000개의 행을 가져오는 대신, 실행당 200개의 행을 처리하도록 설정합니다.
  • 가능하면 코드(Code) 노드 사용을 피하세요.
  • 대량의 데이터를 처리할 때 수동 실행을 피하세요.
  • 워크플로를 하위 워크플로로 분리하고, 각 하위 워크플로가 부모 워크플로에 제한된 양의 데이터만 반환하도록 설정하세요.

처음에는 워크플로를 분리하는 것이 비효율적으로 보일 수 있습니다. 보통 최소 두 개 이상의 노드를 추가해야 하기 때문입니다. 예를 들어, 항목을 작은 배치로 나누는 Loop Over Items 노드와 하위 워크플로를 실행하는 Execute Workflow 노드가 필요합니다.

그러나 하위 워크플로가 각 배치의 주요 작업을 수행한 후, 작은 결과 세트만 메인 워크플로로 반환하도록 하면 메모리 사용량이 줄어듭니다. 이는 하위 워크플로가 현재 배치의 데이터만 메모리에 유지하고, 처리 후 메모리를 해제하기 때문입니다.

Old memory 증가#

이것은 자가 호스팅 n8n에 적용됩니다. JavaScript heap out of memory 오류가 발생하면 V8 JavaScript 엔진의 old memory 섹션에 추가 메모리를 할당하는 것이 유용합니다. 이를 위해 적절한 V8 옵션 --max-old-space-size=SIZE를 CLI 또는 NODE_OPTIONS 환경 변수를 통해 설정하세요.

인포레터에서 최신 DevOps 트렌드를 격주로 만나보세요!