리눅스 서버에서 실행되는 자바가있는 서버 측 응용 프로그램을 코딩합니다. 나는 세션을 데이터베이스에 오픈하기 위해 하이버 네이트를 사용하고 네이티브 SQL을 사용하여 쿼리하고 try, catch, finally로이 세션을 항상 닫는다.최대 절전 모드를 사용할 때 메모리 사용량이 많음
매우 높은 빈도로 최대 절전 모드를 사용하는 내 서버 쿼리 DB.
이미 MaxHeapSize를 정의했는데 3000M이지만 일반적으로 RAM에서 2.7GB를 사용하지만 감소보다 느려질 수 있습니다. 때때로 MaxWeapSize가 3.6GB 메모리 사용량까지 증가합니다. MaxHeapSize는 시작시 정의합니다.
사용되는 메모리가 3.6GB 일 때, 나는 -jmap 명령으로 덤프를 시도하고 크기가 1.3GB 인 힙 덤프 만 받았습니다. 여기에, 그것을 분석하는 일식 MAT를 사용하여
임 내가이 같은 많은 org.apache.commons.collections.map.AbstractReferenceMap $ ReferenceEntry을 가지고, 내가 최대 절전 모드 문제라고 생각 MAT 의 지배자 트리입니다. 가비지 콜렉션으로 처리 할 수 없거나 느려질 수는 있습니다.
어떻게 해결할 수 있습니까?
조금 더 가르쳐 줄 수 있습니까? 오라클 데이터베이스 상호 작용에 대한 경험이 거의 없습니다. – Viet
N 개의 항목을 가져와 업데이트하고 다음 배치를 가져 오는 등의 작업이 필요합니다. –
나는 여전히 내 질문에 "혼란 스럽다. .. 업데이트 .. 어디에서 .. (...) ", IN 질의 목록이 작고 1000에 도달 할 수 없습니다. 그리고 내가 이클립스 MAT에서 Dominator 트리의 리프로 확장 할 때, 내 선택 쿼리 ('sqlQueryCheckSet'내 코드에서), 많은 것을 찾을 수 있으며, it – Viet