InfoGrab Docs

메모리 관련 오류

요약

n8n은 각 노드가 가져오고 처리할 수 있는 데이터 양을 제한하지 않습니다. 이 페이지는 n8n을 셀프 호스팅할 때 발생하는 메모리 관련 오류를 설명합니다. n8n은 일부 메모리 부족 상황에서 경고하는 오류 메시지를 제공합니다.

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

셀프 호스팅 n8n 전용

이 페이지는 n8n을 셀프 호스팅할 때 발생하는 메모리 관련 오류를 설명합니다. n8n Cloud의 메모리 한도에 대해서는 Cloud 데이터 관리를 방문하세요.

메모리 부족 상황 파악#

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

워크플로 실행 문제, 연결 끊김, 503 서비스 일시적으로 사용 불가 등의 오류 메시지는 n8n 인스턴스가 사용 불가능하게 되었음을 나타냅니다.

셀프 호스팅 n8n의 경우 서버 로그에서 할당 실패 - JavaScript 힙 메모리 부족 과 같은 오류 메시지도 볼 수 있습니다.

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 노드가 그것입니다.

그러나 서브 워크플로우가 각 배치의 주요 처리를 담당하고 메인 워크플로우에는 소량의 결과만 반환하는 한, 메모리 소비가 줄어듭니다. 서브 워크플로우는 현재 배치의 데이터만 메모리에 보유하고, 처리가 끝나면 메모리가 해제되기 때문입니다.

이전 메모리 늘리기#

이는 셀프 호스팅 n8n에 적용됩니다. JavaScript 힙 메모리 부족 오류가 발생할 때 V8 JavaScript 엔진의 이전 메모리 섹션에 추가 메모리를 할당하는 것이 종종 유용합니다. 이를 위해 CLI를 통해 또는 NODE_OPTIONS 환경 변수를 통해 적절한 V8 옵션 --max-old-space-size=SIZE를 설정합니다.

메모리 관련 오류

원문 보기
요약

n8n은 각 노드가 가져오고 처리할 수 있는 데이터 양을 제한하지 않습니다. 이 페이지는 n8n을 셀프 호스팅할 때 발생하는 메모리 관련 오류를 설명합니다. n8n은 일부 메모리 부족 상황에서 경고하는 오류 메시지를 제공합니다.

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

셀프 호스팅 n8n 전용

이 페이지는 n8n을 셀프 호스팅할 때 발생하는 메모리 관련 오류를 설명합니다. n8n Cloud의 메모리 한도에 대해서는 Cloud 데이터 관리를 방문하세요.

메모리 부족 상황 파악#

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

워크플로 실행 문제, 연결 끊김, 503 서비스 일시적으로 사용 불가 등의 오류 메시지는 n8n 인스턴스가 사용 불가능하게 되었음을 나타냅니다.

셀프 호스팅 n8n의 경우 서버 로그에서 할당 실패 - JavaScript 힙 메모리 부족 과 같은 오류 메시지도 볼 수 있습니다.

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 노드가 그것입니다.

그러나 서브 워크플로우가 각 배치의 주요 처리를 담당하고 메인 워크플로우에는 소량의 결과만 반환하는 한, 메모리 소비가 줄어듭니다. 서브 워크플로우는 현재 배치의 데이터만 메모리에 보유하고, 처리가 끝나면 메모리가 해제되기 때문입니다.

이전 메모리 늘리기#

이는 셀프 호스팅 n8n에 적용됩니다. JavaScript 힙 메모리 부족 오류가 발생할 때 V8 JavaScript 엔진의 이전 메모리 섹션에 추가 메모리를 할당하는 것이 종종 유용합니다. 이를 위해 CLI를 통해 또는 NODE_OPTIONS 환경 변수를 통해 적절한 V8 옵션 --max-old-space-size=SIZE를 설정합니다.