eGov framework 메모리 관점 Application Tunning 문의
- 작성자 :
- 신*우
- 작성일 :
- 2014-01-16 11:14:25
- 조회수 :
- 1,231
- 구분 :
- 개발환경
- 진행상태 :
- 완료
Q
안녕하세요.
저는 WAS 담당자인데, 개발 프레임웤이 eGov & XPlatform 입니다.
spring & ibatis 환경을 많이 봐 왔기 때문에 OOM에 대해서 데이타 처리후 객체 비우기 처리가 되도록 하는
일종의 튜닝 조치를 하도록 예전부터 관련 개발자들에게는 권고를 해 왔었습니다.
spring 에서 포함된 eGov 로 발전이 되어서 eGov에서는 어떤 튜닝 조치가 가능할까
이 게시판을 통해서 찾아보니, 페이지단위 처리 하라는 글밖에 없던데요.
아래와 같이 heapdump 를 분석 해 보면, Hash 객체와 eGovMap 이 80% 이상을 차지합니다.
오픈을 목전에 앞둔 프로젝트인데, 하루에 한번씩은 꼭 덤프가 생깁니다.. (JVM 2G, WAS * 4 )
아직까지는 테스트가 많이 없어서 안쓸텐데도 현상은 심각합니다.
기본적인 튜닝 포인트가 없을지 확인 부탁드립니다
Responsible for 742,394,880 bytes (45.11 %) of Java heap
Contains 38 instances of the following leak suspects:
- array of java/util/concurrent/ConcurrentHashMap$Segment holding 19,301,424 bytes at 0x700000002a62900
- array of java/util/concurrent/ConcurrentHashMap$Segment holding 19,318,616 bytes at 0x7000000044791c0
- array of java/util/concurrent/ConcurrentHashMap$Segment holding 19,301,424 bytes at 0x700000002a05540
- array of java/util/concurrent/ConcurrentHashMap$Segment holding 19,301,424 bytes at 0x700000004475590
- array of java/util/concurrent/ConcurrentHashMap$Segment holding 19,318,616 bytes at 0x700000004477050
- array of java/lang/Object holding 16,956,712 bytes at 0x7000000343e1e80
- array of java/lang/Object holding 16,956,712 bytes at 0x7000000343a1090
- array of java/util/concurrent/ConcurrentHashMap$Segment holding 19,301,424 bytes at 0x700000004475150
- array of java/util/concurrent/ConcurrentHashMap$Segment holding 19,318,616 bytes at 0x700000004476d50
- array of java/lang/Object holding 16,956,712 bytes at 0x700000035071310
- array of java/lang/Object holding 16,956,712 bytes at 0x700000035030520
- array of java/lang/Object holding 16,956,712 bytes at 0x700000034fef730
- array of java/lang/Object holding 16,956,712 bytes at 0x700000034df7690
- array of java/lang/Object holding 16,956,712 bytes at 0x700000034fae940
- array of java/lang/Object holding 16,956,712 bytes at 0x700000034f6db50
654,317,576 bytes (39.76 %) of Java heap is used by 181,845 instances of egovframework/rte/psl/dataaccess/util/EgovMap
저는 WAS 담당자인데, 개발 프레임웤이 eGov & XPlatform 입니다.
spring & ibatis 환경을 많이 봐 왔기 때문에 OOM에 대해서 데이타 처리후 객체 비우기 처리가 되도록 하는
일종의 튜닝 조치를 하도록 예전부터 관련 개발자들에게는 권고를 해 왔었습니다.
spring 에서 포함된 eGov 로 발전이 되어서 eGov에서는 어떤 튜닝 조치가 가능할까
이 게시판을 통해서 찾아보니, 페이지단위 처리 하라는 글밖에 없던데요.
아래와 같이 heapdump 를 분석 해 보면, Hash 객체와 eGovMap 이 80% 이상을 차지합니다.
오픈을 목전에 앞둔 프로젝트인데, 하루에 한번씩은 꼭 덤프가 생깁니다.. (JVM 2G, WAS * 4 )
아직까지는 테스트가 많이 없어서 안쓸텐데도 현상은 심각합니다.
기본적인 튜닝 포인트가 없을지 확인 부탁드립니다
Responsible for 742,394,880 bytes (45.11 %) of Java heap
Contains 38 instances of the following leak suspects:
- array of java/util/concurrent/ConcurrentHashMap$Segment holding 19,301,424 bytes at 0x700000002a62900
- array of java/util/concurrent/ConcurrentHashMap$Segment holding 19,318,616 bytes at 0x7000000044791c0
- array of java/util/concurrent/ConcurrentHashMap$Segment holding 19,301,424 bytes at 0x700000002a05540
- array of java/util/concurrent/ConcurrentHashMap$Segment holding 19,301,424 bytes at 0x700000004475590
- array of java/util/concurrent/ConcurrentHashMap$Segment holding 19,318,616 bytes at 0x700000004477050
- array of java/lang/Object holding 16,956,712 bytes at 0x7000000343e1e80
- array of java/lang/Object holding 16,956,712 bytes at 0x7000000343a1090
- array of java/util/concurrent/ConcurrentHashMap$Segment holding 19,301,424 bytes at 0x700000004475150
- array of java/util/concurrent/ConcurrentHashMap$Segment holding 19,318,616 bytes at 0x700000004476d50
- array of java/lang/Object holding 16,956,712 bytes at 0x700000035071310
- array of java/lang/Object holding 16,956,712 bytes at 0x700000035030520
- array of java/lang/Object holding 16,956,712 bytes at 0x700000034fef730
- array of java/lang/Object holding 16,956,712 bytes at 0x700000034df7690
- array of java/lang/Object holding 16,956,712 bytes at 0x700000034fae940
- array of java/lang/Object holding 16,956,712 bytes at 0x700000034f6db50
654,317,576 bytes (39.76 %) of Java heap is used by 181,845 instances of egovframework/rte/psl/dataaccess/util/EgovMap
A
안녕하세요. 신재우님.
많은 데이터를 한번에 가져오시는 케이스에 대한 현상과 동일하신 것 같습니다.
확인해 보시면 특정 업무에서 테이블에 대한 페이징 처리 없이 많은 데이터를 한번에 가져오시는 부분이 있으실 것입니다.
DBMS 상에서 호출된 query log 정보도 같이 확인해 보실 수 있으면 어떤 업무에서 발생되시는지 쉽게 확인이 가능할 것 같습니다.
표준프레임워크라고 해서 특별한 튜닝 포인트가 있는 것은 아니고 OOM 관점에서 접근하시면 되실 것 같습니다.
그럼, 즐거운 하루되십시오.
감사합니다.
많은 데이터를 한번에 가져오시는 케이스에 대한 현상과 동일하신 것 같습니다.
확인해 보시면 특정 업무에서 테이블에 대한 페이징 처리 없이 많은 데이터를 한번에 가져오시는 부분이 있으실 것입니다.
DBMS 상에서 호출된 query log 정보도 같이 확인해 보실 수 있으면 어떤 업무에서 발생되시는지 쉽게 확인이 가능할 것 같습니다.
표준프레임워크라고 해서 특별한 튜닝 포인트가 있는 것은 아니고 OOM 관점에서 접근하시면 되실 것 같습니다.
그럼, 즐거운 하루되십시오.
감사합니다.