SAP PO에서 발생되는 OOM(OutOfMemory)에 에러원인과 해결방안은 다양한것 같음
SAP PO에서의 OOM에러 원인들은
- 예를들어 자바프록시 등 내 개발자가 생성한 로직에 잘못된 코드나 메모리 누수가 있는 경우 → 예를들어 테스트 없이 운영배포 후 무한루프 로직이나 라이브러리 사용과는 다른 구현
- 커스텀으로 개발된 코드에서 사용한 외부 라이브러리에 버그가 있는 경우 → 예를들어 레퍼런스가 없는 서비스 지원이 끊긴 라이브러리
- 인터페이스 시 사이즈 제한으로 인한 강제 에러나 대용량 사이즈 처리로 인한 부하가 발생된 경우 → 예를들어 소스시스템에서의 대용량 전송 및 타겟쪽 조회 시 대용량사이즈 리턴
- PO내의 처리관련 설정 보다 더 많은 건수나 빈도수로 호출되어 정체가 되는경우 → 예를들어 소스시스템에서의 무작위 호출
- 시스템내 처리중인 메시지 건수가 많고 이 데이터를 쿼리실행 할때 → 예를들어 집계쿼리 실행이나 인터페이스 내 PO테이블 조회 등
- 트레이스 로그는 모르겠지만 시스템 내 많은 로깅이 쌓일때 → 예를들어 로그레벨 수정으로 인한 불필요한 로깅 등
해결방안으로는
- 무작위로 호출되어 에러가 발생되는 경우 → 소스 배치인경우 일단 중지 후 에러난 로그나 처리중인건들은 확인 후 재처리나 캔슬처리
- 불필요한 로깅 → 시스템 로그레벨을 조정하거나 자바프록시내 로깅은 해당 인터페이스를 수정
- 메모리 누수같은경우
- 메모리 관련 모니터링이나 덤프 분석을 위해선
- Wily Introscope를 사용하는 경우 모든 노드의 힙 메모리 사용량 모니터링
- Eclipse Memory Analyzer(MAT)를 사용한 인스턴스 메모리 사용량을 알수 있는듯
- 바이너리 형식 Heap dump를 분석할수 있다고 함
- SAP가 개발한 Eclipse RPC를 베이스로 멀티플레이트 폼? 어플리케이션이라고 함
댓글 없음:
댓글 쓰기