PI_PO

SAP PO에서 Java Max Heap Memory 설정 및 OOM 해결 방법

피오농부 2025. 5. 26. 06:59
반응형
2021-07-31에 작성된 글입니다.

SAP PO(또는 PI) 환경에서 Java Max Heap Memory 설정은 시스템 성능과 안정성을 위한 핵심 요소입니다. 이 글에서는 SAP NetWeaver 기반 시스템에서 OOM(Out Of Memory) 오류를 예방하고, 효율적으로 힙 메모리를 관리하는 방법을 소개합니다.


목차 (Table of Contents)

  1. OOM이란? SAP PO에서 자주 발생하는 메모리 이슈
  2. ESR/IB 툴 성능 개선을 위한 힙 메모리 확장 방법
  3. SAP NWA에서 Max Heap Size 설정하기
  4. JNLP 파일 수정으로 힙 크기 조정하기
  5. Java 힙 메모리 구조와 튜닝 시 유의사항
  6. GC(Garbage Collection) 이해하기
  7. SAP 성능 분석 도구 소개
  8. 마무리 요약 및 실전 팁

1. OOM이란? SAP PO에서 자주 발생하는 메모리 이슈

SAP PO 환경에서는 대용량 메시지 처리나 잘못된 인터페이스 로직 등으로 인해 OOM(OutOfMemoryError) 오류가 발생할 수 있습니다. 특히 ESR(Enterprise Services Repository)에서 매핑 오브젝트 저장/편집 시 OOM이 자주 나타나며, 개발자 툴 사용 시 시스템이 느려지는 문제도 발생합니다.

관련 SAP 노트:
📌 1580914 - Java heap space OutOfMemoryError in the PI Repository


2. ESR/IB 툴 성능 개선을 위한 힙 메모리 확장 방법

개발자가 자주 사용하는 ESR, IB 툴의 성능 저하는 대부분 힙 메모리 부족이 원인입니다. 이를 개선하는 두 가지 방법은 다음과 같습니다.

  • NWA를 통해 서버에서 직접 설정
  • 로컬 JNLP(Java Network Launch Protocol) 파일을 수정

3. SAP NWA에서 Max Heap Size 설정하기

경로:
Configuration > Infrastructure > Java System Properties > Services > XPI Service: All Config Service

여기에 다음 속성을 추가합니다:

com.sap.aii.ib.client.jnlp.j2se.maxheapsize

이 설정을 통해 개발도구에 할당된 최대 힙 메모리를 증가시킬 수 있습니다.


4. JNLP 파일 수정으로 힙 크기 조정하기

개발자가 직접 실행하는 ESR/IB 툴의 .jnlp 파일을 다음과 같이 수정하세요:

<resources>
  <j2se java-vm-args="-Xms32m -Xmx512m -XX:MaxPermSize=128m" version="1.8+" />
</resources>

※ -Xmx는 최대 힙 크기, -Xms는 초기 힙 크기, MaxPermSize는 PermGen 영역의 크기를 의미합니다.


5. Java 힙 메모리 구조와 튜닝 시 유의사항

SAP PO는 Java 기반 플랫폼이며, 힙 메모리 구조는 다음과 같이 구성됩니다:

  • Young Generation: 새로 생성된 객체 저장
  • Old Generation: 장시간 유지되는 객체 저장

메모리 조정 시 고려할 사항:

  • 32비트 JVM: 최대 1~1.5GB
  • 64비트 JVM: 일반적으로 2GB 이상, 최대 3.5GB 권장
  • 힙보다 노드를 추가하는 것이 더 효과적일 수 있음
  • 지나치게 큰 힙은 Full GC 시간 증가로 인해 Stop-the-World 현상을 유발할 수 있음

6. GC(Garbage Collection) 이해하기

Java는 자동 메모리 관리 시스템(GC)을 통해 사용하지 않는 객체를 정리합니다. 주요 GC 유형은 다음과 같습니다:

  • Minor GC: Young 영역에서 작고 빠르게 수행됨
  • Full GC: Old 영역까지 정리하며, 전체 시스템을 멈추게 할 수 있음

Full GC가 자주 발생하면 성능 저하와 OOM으로 이어지므로 모니터링이 필수입니다.


7. SAP 성능 분석 도구 소개

SAP에서는 다음과 같은 도구를 통해 GC 및 메모리 상태를 분석할 수 있습니다:

  • Wily Introscope: JVM 힙, 스레드, GC 모니터링 도구
  • SAP Profiling Tools: 힙 덤프, 스레드 덤프 분석 가능
  • **NWA(Log Viewer)**를 통한 실시간 로그 추적

만약 OOM 발생 시, /usr/sap/<SID>/JC<instance>/work 디렉토리에서 힙 덤프 파일을 확인할 수 있습니다.


8. 마무리 요약 및 실전 팁

SAP PO에서 자바 힙 메모리 튜닝은 시스템 안정성을 위한 핵심 포인트입니다. 다음을 기억하세요:

  • 개발 툴 ESR/IB가 느리면 NWA 또는 JNLP로 Max Heap 설정
  • GC 동작 이해 및 Wily Introscope로 정기적 모니터링
  • Stop-the-world 현상을 줄이기 위해 과도한 힙 증설은 피할 것
  • 메모리보다 병렬 노드 및 스레드 확장이 효율적일 수 있음
반응형