CMS GC 매개 변수 구성에 대한 철저한 이해
최근 여러 HBase 클러스터에 대한 JVM 매개 변수를 정리하고 기본 CMS GC 구성인 것으로 밝혀졌으며 JVM 매개 변수를 튜닝하는 방법은 무시할 수 없는 주제다. 따라서 CMS GC 의 JVM 합리적인 매개 변수 구성을 찾기 위해 필자는 여러 커뮤니티 문장 및 관련 블로그를 참조하여 CMS 관련 지식 포인트와 CMS 기반 JVM 매개 변수 구성을 요약합니다.
CMS(Concurrent Mark Sweep, concurrent mark sweep, concurrent-marks-erasure) 는 현재 가장 널리 사용되는 JVM 가비지 수집기로, CMS 의 작업 과정을 설명하지 않고 다음 내용을 이해하는 데 도움이 되는 몇 가지 기본 요점만 기록합니다.
64G 이상의 힙인 경우 -Xmn 을 2g 로 조정할 수 있으며 다른 매개변수는 변경되지 않거나 미세 조정됩니다. 다음은 몇 가지 중요한 JVM 매개 변수에 대한 설명입니다.
다음 매개 변수 해결은 CMS GC 정책 사용을 기반으로 합니다. 여기서 CMS GC 는 오래된 가비지 수집을 나타내고 Young GC 는 신세대 가비지 수집을 나타냅니다.
① -Xmx, -Xms, -Xmn
-Xmx, -Xms 는 각각 JVM 힙의 최대 값, 초기화 크기를 나타냅니다. -Xmx 는-xx: maxheapsize 에 해당하고 -Xms 는-xx: initialheapsize 에 해당합니다.
-Xmn 은 신세대 크기를 나타내며-xx: -XX:NewSize,-xx: newsize 에 해당합니다. 이 매개 변수의 설정은 GC 성능에 큰 영향을 미치고, 작은 설정은 CMS GC 성능에 영향을 미치며, 큰 설정은 youu 에 영향을 미칩니다
② -Xss
는 스레드 스택의 크기를 나타내며-xx: threadstack size, 기본값 1M 에 해당하며 일반적으로 그렇게 많이 사용할 수 없습니다. 권장 값은 256k 입니다.
③-xx: Survivor ratio
survivor zone 에 대한 신생대 Eden zone 의 비율, 기본값 8
④-xx:+useParNewgc,-xx:+useconcmarksweepgc
는 각각 병렬 수집기 parnew 를 사용하여 신생대 가비지 수집을 나타내고
⑤-xx: parallelgcthreads,-xx: parallelcmsthreads
는 각각 Young GC 와 CMS GC 가 일할 때
⑥-xx: maxtenuringthreshold
< p 너무 작게 설정하면 CMS GC 성능에 심각한 영향을 줄 수 있으므로 기본값을 사용하는 것이 좋습니다.⑦-xx:+useCMScompactatfullcollection
CMS GC 는 메모리 조각을 생성하고 전체 GC 에서만 메모리 조각 압축을 수행하므로 이 매개변수는 전체 GC 를 켤 때의 압축 기능을 나타내며 메모리 조각화를 줄입니다.
⑧-xx:+usecmsinitiatingoccupancyonly,-xx: cmsinitiatingoccupancyfraction
일반적으로 70~80 (백분율) 으로 설정되고, 너무 작게 설정하면 CMS GC 검색 빈도가 증가하고, 너무 크게 설정하면 동시 모드가 실패하거나 승진이 실패할 수 있습니다. 기본값은 -1 로 CMS GC 가 JVM 에 의해 자동으로 트리거됨을 의미합니다.-xx:+usecmsinitiatingoccupancyonly 는 CMS GC 가 CMSInitiatingOccupancyFraction 을 기반으로 트리거되었음을 나타내며, 이 매개 변수를 설정하지 않으면 JVM 은 cmsinition 을 기반으로 합니다 두 매개변수를 모두 설정하는 것이 좋습니다.
⑨-xx:+CMSclassunloadingenabled
는 영구 세대 공간 고갈로 인한 전체 GC 를 피하기 위해 CMS 를 켜는 것을 의미합니다
온라인 도구
GC 온라인 매개변수 검사 및 최적화:
GC 온라인 로그 분석:/2016/08/09/h base-com Euey8visBvINQNOF0AiACQ
현재 우리는 주로 CMS 를 사용하고 있지만, 사실 비교적 큰 heap 는 G1 가비지 수집기를 추천한다. G1 에 대해서는 뒷부분에서 소개하겠습니다. 당신의 의견을 남기신 것을 환영합니다.
이전 문장 선택
◆ 아파치 후디 버전 0.5.1 무거운 릴리스
◆ 쉘 찾기 Flink 기반 실시간 플랫폼 구축
◆ 샤오미 스트리밍 플랫폼 아키텍처의 진화와 실천이 문장 마음에 드시면 보고 전달하는 것이 모두 격려입니다. 승인을 받으시길 기대하십니까? (_-)