2013-05-23 2 views
2

사용자 및 시스템 시간이 총 시간보다 훨씬 짧은 가비지 수집 중에 큰 JVM 일시 중지가 발생했습니다. [시간 : 사용자 = 3.99 SYS = 0.55, 실제 = 34.29 초는] 우리는 때문에 메모리 관리가 될 수 의심 모두가 비활성화 보여 투명하고 거대한 페이지의 설정 확인 :투명 페이지가 비활성화되었지만 compact_stall이 null이 아닙니다.

/sys/kernel/mm/redhat_transparent_hugepage/enabled:always [never] 
/sys/kernel/mm/redhat_transparent_hugepage/defrag:[always] never 
/sys/kernel/mm/redhat_transparent_hugepage/khugepaged/defrag:[yes] no 

그러나 THP 및 관련보고를 카운터, 우리는 압축 포장 마차를 많이 참조하십시오 egrep을 '| THP | 트랜스 compact_을'은/proc/vmstat를

nr_anon_transparent_hugepages 0 
compact_blocks_moved 113682 
compact_pages_moved 3535156 
compact_pagemigrate_failed 0 
compact_stall 1944 
compact_fail 186 
compact_success 1758 
thp_fault_alloc 6 
thp_fault_fallback 0 
thp_collapse_alloc 15 
thp_collapse_alloc_failed 0 
thp_split 17 

그래서 질문은, 왜 THP 및 압축 스톨/카운터 THPS이 비활성화 0이 아닌 경우입니다 실패한다 압축을 해제하여 JVM을 방해하지 않도록하는 방법 (긴 GC 일시 중지의 원인이라고 생각됩니다) 이 문제는 RHEL6.2, 2.6.32-279.5.2.el6.x86_64, JVM 6u21 32 비트에서 발생합니다. 감사!

+0

이 "/ SYS를하지 않습니다/kernel/mm/redhat_transparent_hugepage/defrag : [항상] 절대로 "* IS *를 사용할 수 있습니까? "항상 [결코]"장애인을 의미하지 않습니까? –

+0

CentOS에서 비슷한 문제가 있다고 생각합니다. 투명 대형 페이지가 작동하지 않습니까? –

답변

1

THP를 제거하려면 THP 데몬뿐만 아니라 THP 조각 모음 도구도 해제해야합니다. defrag는 THP에서 독립적으로 실행되지만 /sys/kernel/mm/khugepaged/defrag의 설정은 THP 데몬이 조각 모음을 실행할 수 있는지 여부 만 제어 할 수 있습니다. 의미 : 응용 프로그램이 THP의 (잠재적) 이점을 얻지 못하더라도 시스템을 멈추게하는 조각 모음 프로세스가 여전히 활성화되어 있습니다. /SYS/커널/mm/transparent_hugepage/(/ SYS에있을 수 심볼릭/커널/mm/redhat_transparent_hugepage)

:

는 THP & 조각 모음 설정을 제어하기위한 분배 독립적 경로를 사용하도록 권장되고

echo never > /sys/kernel/mm/transparent_hugepage/enabled 
echo never > /sys/kernel/mm/transparent_hugepage/defrag 

당신은 자바 응용 프로그램을 실행하고 THP/조각 모음이 JVM을 일시 중지 또는 노점을 일으키는 지 여부를 알고 싶은 경우, 당신의 GC 로그에보고해야 할 가치가있을 수 있습니다 :이 발생합니다. -XX : + PrintGcDetails를 사용하도록 설정하면 sys/user 시간보다 훨씬 긴 "실제"시간을 볼 수 있습니다. 한 - 라이너 다음 내 경우

는 충분했다

less gc.log | grep sys=0 | grep user=0 | grep -P "real=[1-9]" 

THP의 부정적인 영향의 초기 설명 AFAIK 그렉 란 (Rahn)에 의해이 블로그 게시물입니다 : http://structureddata.org/2012/06/18/linux-6-transparent-huge-pages-and-hadoop-workloads/

+0

나는 THP에 관해 읽은 대부분의 게시물에서이 점을 언급하지 않았지만 THP를 단순히 비활성화하면 문서를 포함하여 문제를 해결하기에 충분하다는 점에 주목하고있다. 다양한 데이터 저장소 용). 사용 중지가 THP로 인한 대기 시간 문제를 해결하기에 충분한 지 궁금합니다. 그러면이 문제가 완전히 해결됩니다. – WheresWardy

+0

이미 말했듯이, 메모리 조각 모음 (시스템 정지를 유발 함)은 THP 데몬과 조각 모음 데몬에 의해 시작됩니다. THP를 비활성화하면 아마도 실속이 줄어 듭니다. 어떤 경우에는 이것이 충분하지만 누가 정말로 "어쩌면"멈추고 싶습니까? – cgicgi

+0

참. 흥미롭게도 우리는 THP (부팅 중 커널 매개 변수)와 defrag (부팅시의 커널 매개 변수)를 모두 비활성화 했음에도 불구하고 여전히 정지 상태에서 대기 시간 문제를보고 있음을 알았습니다 (/ proc/vmstat의 compact_stall 값은 여전히 ​​상승 중입니다). 런타임), 문제는 우리가 이러한 작업을 수행하기 전과 같이 악화되지 않습니다. 우리는 조사를 계속하고 있습니다. – WheresWardy

관련 문제