OutOfMemoryError가 발생했을 때 대처 방법
    • PDF

    OutOfMemoryError가 발생했을 때 대처 방법

    • PDF

    기사 요약

    개요

    TROCCO에서는 STEP2 미리보기 시 또는 작업 실행 시 메모리 부족(Out Of Memory)으로 인한 오류가 발생할 수 있습니다.
    이 페이지에서는 OutOfMemoryError가 발생하는 원인과 대처 방법에 대해 설명합니다.

    오류 메시지 예시

    메모리 부족으로 인해 오류가 발생하면 다음과 같은 오류 메시지가 로그에 표시됩니다.

    OutOfMemoryError: OutOfMemoryError. GC 오버헤드 한도 초과
    
    OutOfMemoryError: OutOfMemoryError. Java 힙 공간
    

    가능한 원인

    OutOfMemoryError는 한 번에 전송하는 데이터의 양이 TROCCO의 처리 능력을 초과하여 TROCCO의 작업 실행 컨테이너의 메모리가 소진된 경우에 발생한다.
    보다 구체적으로 다음과 같은 경우에 발생합니다.

    • 데이터 수집 시: TROCCO의 전송 설정 내용에 따라 수집 대상 데이터의 양이 방대해진다.
    • 데이터 투입 시: 전송 대상 커넥터 측의 동시 접속 수 등 설정 내용에 따라 처리량이 방대해진다.

    대처법

    몇 가지 대처 방법을 생각해 볼 수 있습니다.

    전송 데이터 분할하기

    전송원 커넥터의 설정에 따라 획득한 데이터 양이 방대한 경우, 한 번에 획득하는 데이터 양을 줄여야 한다.
    예를 들어, 전송원 커넥터의 설정에서 아래 부분을 조정하여 데이터 수집량이 줄어들도록 조정하십시오.

    • 전송원 파일 및 저장소 시스템: 경로 접두사
      • 한 번에 가져오는 파일 수를 줄일 수 있도록 계층을 깊게 지정하세요.
      • 커스텀 변수를 삽입하여 파일 하나하나를 가져오는 것도 가능합니다.
    • 전송원 데이터베이스 시스템 : 쿼리
      • WHERE 구문을 작성하여 한 번에 가져오는 레코드 수를 줄여야 합니다.
      • WHERE 절에 사용자 정의 변수를 삽입하여 실행할 때마다 가져올 레코드를 동적으로 지정할 수 있습니다.
    • 전송원 클라우드 애플리케이션 및 광고계 : 데이터 수집 기간
      • 기간을 좁혀서 한 번에 가져오는 레코드 수를 줄이세요.
      • 데이터 수집 시작일과 종료일에 각각 커스텀 변수를 삽입할 수 있습니다.

    위의 내용 외에도 검색 대상 컬럼을 좁혀서 검색할 수 있습니다,** 사용자 지정 변수 루프 실행** 를 이용해 작업 자체를 분할하는 것도 고려해 볼 수 있습니다.

    작업 설정 검토

    TROCCO에서 여러 개의 작업을 동시에 실행하면 전송 대상 서비스에 많은 처리를 요청하게 됩니다.
    동시에 실행되는 작업이 너무 많아지지 않도록 스케줄 설정과 워크플로우의 병렬 실행 횟수를 조정하세요.

    한 번의 요청으로 얻을 수 있는 라인 수를 줄입니다.

    일부 전송원 커넥터에는 한 번의 요청으로 가져오는 행 수를 지정할 수 있는 설정 항목이 있습니다. (예: 전송처 - Google Analytics 4)
    이러한 설정 항목이 있는 경우, 해당 설정 값을 적절히 낮추십시오.

    배치 크기 줄이기

    일부 전송 대상 커넥터에는 배치 크기를 지정할 수 있는 설정 항목이 있습니다. (예: 전송 대상 - Snowflake )
    이러한 설정 항목이 있는 경우, 해당 설정 값을 적절히 낮추십시오.

    전송 대상 서비스 측 설정 조정하기

    전송 대상 서비스 측에서 메모리 할당량이나 동시접속자 수 제한을 지정할 수 있는 경우, 해당 값을 조정해 주세요.
    예를 들어, 전송 대상인 Snowflake의 경우, 동시 실행 쿼리 제한을 통해 쿼리당 성능을 향상시킬 수 있습니다.


    이 문서가 도움이 되었습니까?