이 글은 기계 번역의 미러 문서이며, 원본 기사로 바로 이동하려면 여기를 클릭해 주세요.

보기: 17284|회답: 1

[출처] JVM 매개변수 옵션

[링크 복사]
2020-8-31 22:20:25에 게시됨 | | |
JVM 파라미터를 -X 또는 -XX로 시작하는 JVM 파라미터를 세 부분으로 나눕니다:
1. -부터 시작하여 표준 VM 옵션, VM 명세 옵션;
2. -X로 시작하는 매개변수는 비표준이며(이 매개변수들이 모든 JVM에 구현된다는 보장은 없습니다), 새 버전에 변경 사항이 있을 경우 알림이 발송되지 않습니다.
3. -XX로 시작하는 것은 불안정하여 운영 환경에서 사용하는 것이 권장되지 않습니다. 이 매개변수에 대한 변경 사항도 통지되지 않습니다. 불 매개변수 옵션: -XX:+ 켜짐, -XX:- 꺼짐. (예: -XX:+PrintGCDetails) 수치 매개변수 옵션은 -XX:=로 설정됩니다. 숫자는 m/m(메가바이트), k/k(킬로바이트), g/g(g-바이트)일 수 있습니다. 예를 들어: 32K는 32768바이트를 의미합니다. (예: -XX:MaxPermSize=64m) 문자열 매개변수 옵션은 -XX:=로 설정되며, 보통 파일, 경로 또는 명령 목록을 지정하는 데 사용됩니다. (예: -XX:HeapDumpPath=./java_pid.hprof) 명령어 java -help는 Java 애플리케이션 시작을 위한 표준 옵션을 나열할 수 있습니다(부록 표준 VM 매개변수 표 참조, JVM 구현마다 다릅니다). java -X는 비표준 매개변수를 나열할 수 있으며(이는 JVM의 확장입니다). -X 관련 옵션은 표준이 아니며, 변경될 경우 알림이 없습니다. 현재 애플리케이션에서 사용 중인 JVM 매개변수를 보고 싶다면, ManagementFactory.getRuntimeMXBean().getInputArguments()를 사용할 수 있습니다.

매개변수 이름의미기본값/노트
-Xms초기 힙 크기1/64(<1GB) 물리 메모리 기본값으로(MinHeapFreeRatio 매개변수 조정 가능) 자유 힙 메모리가 40% 미만일 때 JVM은 최대 한계인 -Xmx까지 힙을 늘립니다
-Xmx최대 힙 크기물리 메모리의 1/4(<1GB) 기본값(MaxHeapFreeRatio 매개변수 조정 가능) 자유 힙 메모리가 70%를 초과하면 JVM은 -xms 최소 한계까지 힙을 줄입니다
-엑스므세대 크기 (JDK 1.4 이상)신세대가 증가하면 기존 세대의 규모가 줄어듭니다. 이 값은 시스템 성능에 상당한 영향을 미칩니다. Sun은 전체 스택의 3/8에 이 구성을 공식적으로 권장합니다
-XSS각 스레드의 스택 크기JDK5.0 이후에는 각 스레드 스택 크기가 1M이었고, 이전에는 각 스레드 스택 크기가 256K였으며, 이는 K, M 또는 G 단위로 나눌 수 있습니다
-XX:스레드 스택 크기같은 책0은 기본 값이 사용되었음을 의미하며, 이를 결합할 수 없음을 의미합니다
-XX:퍼름사이즈영구 대수 초기 값을 설정하세요물리적 메모리의 1/64
-XX:최대 퍼름사이즈영구 생성 최대 값을 설정하세요물리적 메모리의 1/4
-XX:뉴레이션신생대(에덴과 두 개의 생존자 구역 포함)와 노년(영구 세대 제외) 비율-XX:NewRatio=4는 신생대와 구시대의 비율이 1:4이며, 신생대가 전체 스택의 1/5를 차지함을 의미한다. Xms=Xmx, Xmn이 설정되어 있으므로 이 매개변수는 설정할 필요가 없다.
-XX:생존자 비율에덴 구역과 생존자 구역의 크기 비율8로 설정하면 두 생존자 지역과 에덴 지역 1의 비율은 2:8이며, 생존자 지역 하나가 신생대 전체의 1/10을 차지합니다
-XX:LargePageSizeInBytes메모리 페이지 크기를 너무 크게 설정하면 Perm 크기가 달라집니다=128m
-XX:+UseFastAccessorMethods원래 유형의 빠른 최적화
-XX:+DisableExplicitGCClose System.gc()이 매개변수는 엄격한 테스트가 필요합니다
-XX:최대 임시 임계치쓰레기 최대 사용 가능 시간0으로 설정하면 새 세대 객체는 생존자 영역을 거치지 않고 바로 구시대로 진입합니다. 오래된 응용 분야에서는 효율성을 향상시킬 수 있습니다. 이 값이 크게 설정되면 새 세대 객체가 생존자 영역에서 여러 번 복제되어, 새 세대에서 객체의 생존 시간이 증가하고 재순환 확률이 높아지는데, 이는 직렬 GC에만 유효합니다
-XX:+공격적 옵츠스피킹업 컴파일
-XX:+UseBiasedLocking잠금 메커니즘의 성능 향상
-Xnoclassgc쓰레기 재활용 비활성화
-XX:SoftRefLRUPolicyMSPerMB메가파일의 자유 공간당 SoftReference의 생존 시간1
-XX: 임시 보유 규모 임계값물건의 크기는 노년에 직접 분배됩니다새로운 세대가 Parallel Scavenge GC를 사용하는 또 다른 경우는 유효하지 않으며, 구세대에 직접 할당된 경우는 외부 참조 객체가 없는 큰 배열 객체입니다.
-XX:TLAB와스트 목표 비율에덴 지역 TLAB 비율1%
-XX:+CollectGen0FirstFullGC가 될 때 YGC가 우선인지?false
-XX:+UseParallelGC풀 GC는 병렬 MSC를 사용합니다[GC 매개변수] 참조[1]
-XX:+UseParNewGC새로운 세대가 병행하여 수집하도록 설정하기CMS 컬렉션, JDK 5.0 또는 그 이후 버전과 함께 사용할 수 있으며, JVM이 시스템 구성에 따라 값을 설정하므로 이 값을 다시 설정할 필요가 없습니다
-XX:평행 GCThreads병렬 집강기의 나사 수이 값은 프로세서 수만큼 구성하는 것이 가장 좋으며, CMS에도 적합합니다
-XX:+UseParallelOldGC기존의 가비지 컬렉션 방법은 병렬 컴팩트(Parallel Compacting)입니다이것이 JAVA 6에 나타나는 매개변수 옵션입니다
-XX:맥스 GCPauseMillis신규 세대 폐기물 수거당 최대 시간 (최대 일시 정지 시간)이 시간을 충족하지 못하면 JVM은 자동으로 새 세대의 크기를 조정하여 이 값을 충족시킵니다.
-XX:+UseAdaptiveSizePolicy자동으로 새로운 발전 구역의 크기와 생존자 구역의 비율을 선택하세요이 옵션이 설정되면 병렬 컬렉터는 자동으로 새로운 발전 영역의 크기와 생존자 영역의 비율을 선택하여 목표 시스템에서 지정한 최소 대응 시간 또는 수집 주파수를 달성합니다
-XX:GCTimeRatio가비지 수거 시간을 프로그램 실행 시간의 백분율로 설정하세요공식은 1/(1+n)입니다.
-XX:+ScavengeBeforeFullGCYGC에 전화하기 전에 전체 GC를 확인하세요true
-XX:+UseConcMarkSweepGCCMS 메모리 수집 사용테스트에서 이를 구성한 후 -XX:NewRatio=4 구성은 유효하지 않아 원인도 알 수 없으므로, 이 시점에서 새 세대의 크기를 설정하기 위해 -Xmn을 사용하는 것이 가장 좋습니다
-XX:+AggressiveHeap이 시도는 많은 물리적 메모리를 사용하는 것입니다장기 대용량 메모리 사용량 최적화, 메모리 및 프로세서 수, 최소 256MB 메모리가 필요한 컴퓨팅 자원 확인
-XX:CMS 압축 전의 두꺼운 GCs기억 압축은 몇 번이나 일어나나요?동시 컬렉터가 메모리 공간을 압축하거나 조직하지 않기 때문에, 일정 시간 실행 후 '단편화'가 발생하여 운영 효율이 저하됩니다
-XX:+CMSParallelRemarkEnabled낮은 마커 정지
-XX+UseCMSCompactAtFullCollection(최대 컬렉션)FullGC였던 시절의 압축CMS는 메모리를 이동하지 않기 때문에 매우 쉽게 단편화가 발생하여 메모리 부족이 발생하므로 이 시점에서 메모리 압축이 활성화됩니다. 이 수치를 높이는 것은 좋은 습관입니다. 성능에는 영향을 줄 수 있지만, 이물질을 제거할 수 있습니다
-XX:+CMS사용 점유만 활용수동 정의 초기화로 CMS 수집 시작HostSpot은 단독으로 CMS GC를 트리거하는 것이 금지되어 있습니다
-XX:CMS점유분수=70CMS 수거는 쓰레기의 70%가 재활용에 사용된 후 시작됩니다이 값은 다음 공식인 CMSInitiatingOccupancyFraction을 충족하도록 설정해야 합니다
- XX:CMS:PermOccupancyFractionPerm Gen 사용이 그 비율에 도달했을 때 트리거되도록 설정하세요92
-XX:+CMSIncrementalMode점진적 모드로 설정됨단일 CPU 케이스에서 사용
-XX:+CMSClassUnloadingEnabled영구 CMS GC
-XX:+PrintGCGC 로그 출력-verbose:gc와 동일합니다
-XX:+PrintGCDetails같은 책자세한 내용
-XX:+PrintGCTimeStamps출력 GC 타임스탬프위의 PrintGC 파라미터와 함께 사용하거나, -XX:+PrintGC:PrintGCTimeStamps 같은 것을 작성하세요
-XX:+PrintGC:PrintGCTimeStamps-XX:+PrintGC -XX:+PrintGCDetails와 혼합할 수 있습니다
-XX:+프린트GCA요청시간 멈춤프린트 가비지 컬렉션 중에 프로그램이 일시정지되는 시간입니다. 위 내용과 섞어도 됩니다출력 형식: 애플리케이션 스레드가 중단된 총 시간: 0.0468229초
-XX:+PrintGCApplicationConcurrentTime각 가비지 컬렉션 전에 프로그램의 중단 없는 실행 시간을 출력하세요위 것과 혼합할 수 있으며, 출력 형태: 적용 시간: 0.5291524초
-XX:+PrintHeapAtGCGC 전후에 상세한 스택 정보를 출력하세요
-Xloggc:파일이름관련 로그 정보를 분석용 파일에 기록하세요위 몇 가지와 함께 작동합니다
-XX:+PrintClassHistogram콘솔에서 Ctrl+Break를 누른 후 클래스 정보를 출력하세요
-XX:+PrintClassHistogramBeforeFullGC인쇄 전 풀GC
-XX:+PrintTLABTLAB 공간의 사용 현황 보기
XX:+PrintTenuringDistribution각 경미한 GC 이후 새로운 생존 기간의 임계값을 확인하세요
-EAassert assert 켜기
-엑스프로프성능 진단
-엑스룬프로프성능 진단
-XX:+TraceClassLoading클래스 로딩 과정에 관한 정보를 인쇄합니다[Loaded java.util.AbstractList$Itr from /Library/Java/JavaVirtualMachines/jdk1.8.0_111.jdk/contents/Home/jre/lib/rt.jar]
-XX:+TraceClassUnloading인쇄 클래스 삭제 프로세스 정보
Xbootclasspath검사가 필요 없는 클래스의 로드를 명시합니다.필요한 사전 점검을 건너뛰면 적재 시간을 줄일 수 있지만 안전하지는 않습니다
-XX:+PrintCompilation핫스팟이 JIT로 컴파일하는 메서드 이름을 출력하세요
-XX:+HeapDumpOnOutMemoryError힙덤프를 생성할 때 OM기본 출력은 클래스 파일이 저장된 루트 폴더에 있습니다
-XX:힙덤프 경로출력 OM 덤프 파일 경로를 설정하세요-XX:+HeapDumpOnOutOfMemoryError와 함께 사용

부록

[표준 VM 매개변수 시트]

매개변수 이름묘사기본값
-d3232비트 데이터 모델(가능한 경우) 사용하세요
-D6464비트 데이터 모델(가능한 경우) 사용하세요
-서버서버 VM 선택하세요기본 VM은 서버입니다. 왜냐하면 서버와 유사한 컴퓨터에서 실행되기 때문입니다.
-cp < 디렉터리와 zip/jar 파일 클래스 검색 경로 >
-classpath< 디렉터리와 zip/jar 파일의 클래스 검색 경로입니다 >분리된 디렉터리, JAR 아카이브, ZIP 아카이브 목록을 사용하여 클래스 파일을 검색하세요
-D<名称>=<值>시스템 속성 집합
-장황하게: [수업 또는 GC, JNI]상세 출력 활성화
-버전제품 버전을 출력하고 종료하세요
-<值>버전:폐기됨
-쇼 버전제품 버전을 출력하고 계속 진행하세요
-jre-restrict-search 또는 -no-jre-restrict-search폐기됨
-? -도움말이 도움말 메시지 출력하세요
-X비표준 옵션에 대한 출력 도움말
-EA[:< 패키지명, 클래스명>]주장
-enableassertions[:< 패키지명, 클래스명>]지정된 세분화에서 주장을 활성화합니다
-da[:< 패키지 이름, 클래스명>]
-disableassertions[:< 패키지 이름, 클래스 이름>]지정된 세분성을 가진 주장을 비활성화합니다
-esa 또는 -enablesystemassertions시스템 어설션 활성화
-DSA 또는 -비활성화 시스템 주장시스템 어설션 비활성화
-agentlib:<libname>[=<选项>]네이티브 에이전트 라이브러리<libname>를 로드하세요예를 들어, -agentlib:hprof도 참조하세요 -agentlib:jdwp=help, -agentlib:hprof=help
-agentpath:<pathname>[=<选项>]로컬 에이전트 라이브러리를 전체 경로명으로 불러오세요
-Javaagent:<jarpath>[=<选项>]Java 프로그래밍 언어 에이전트를 불러오려면 java.lang.instrument를 참조하세요.
-첨벙:<imagepath>지정된 이미지가 있는 스플래시 화면을 표시하세요






이전의:Nuget Series 1은 asp.net 를 사용하여 개인 Nuget 저장소를 구축합니다
다음:Mysql CURRENT_TIMESTAMP와 ON UPDATE CURRENT_TIMESTAMP 구분되어 있습니다
 집주인| 2022-1-13 09:50:32에 게시됨 |


참고: -Xms256m -Xmx1536m 는 jar 매개변수 뒤에 배치할 수 없습니다!
면책 조항:
Code Farmer Network에서 발행하는 모든 소프트웨어, 프로그래밍 자료 또는 기사는 학습 및 연구 목적으로만 사용됩니다; 위 내용은 상업적 또는 불법적인 목적으로 사용되지 않으며, 그렇지 않으면 모든 책임이 사용자에게 부담됩니다. 이 사이트의 정보는 인터넷에서 가져온 것이며, 저작권 분쟁은 이 사이트와는 관련이 없습니다. 위 내용은 다운로드 후 24시간 이내에 컴퓨터에서 완전히 삭제해야 합니다. 프로그램이 마음에 드신다면, 진짜 소프트웨어를 지원하고, 등록을 구매하며, 더 나은 진짜 서비스를 받아주세요. 침해가 있을 경우 이메일로 연락해 주시기 바랍니다.

Mail To:help@itsvse.com