JVM(Java Virtual Machine) 설정

이 페이지에서 Application Server에 대한 프로세스의 JVM(Java™ Virtual Machine) 구성 설정을 보고 변경할 수 있습니다.

이 관리 콘솔 페이지를 보려면 관리 콘솔에 연결하여 JVM(Java Virtual Machine) 패널을 탐색하십시오.

[AIX Solaris HP-UX Linux Windows] [iSeries] IBM® i 및 분산 플랫폼의 경우, 서버 > 서버 유형 > WebSphere Application Server > server_name을 클릭하십시오. 그런 다음, 서버 인프라 섹션에서 Java 및 프로세스 관리 > 프로세스 정의 > JVM(Java Virtual Machine)을 클릭하십시오.

[z/OS] z/OS® 플랫폼의 경우, 다음 경로 중 하나를 따르십시오.
Application Server 서버 > 서버 유형 > WebSphere Application Server > server_name을 클릭하십시오.그런 다음, 서버 인프라 섹션에서 Java 및 프로세스 관리 > 프로세스 정의 > 제어 > JVM(Java Virtual Machine)을 클릭하십시오.
Deployment Manager 시스템 관리 > Deployment Manager를 클릭하십시오. 그런 다음, 서버 인프라 섹션에서 Java 및 프로세스 관리 > 프로세스 정의 > 제어 > JVM(Java Virtual Machine)을 클릭하십시오.
Node agent S시스템 관리 > Node Agent > node_agent를 클릭하십시오. 그런 다음, 서버 인프라 섹션에서 Java 및 프로세스 관리 > 프로세스 정의 > JVM(Java Virtual Machine)을 클릭하십시오.
[AIX Solaris HP-UX Linux Windows] [iSeries] IBM i 및 분산 플랫폼의 경우, 다음 경로 중 하나를 따르십시오.
Application Server 서버 > 서버 유형 > WebSphere Application Server > server_name. 그런 다음, 서버 인프라 섹션에서 Java 및 프로세스 관리 > 프로세스 정의 > JVM(Java Virtual Machine)을 클릭하십시오.
Deployment Manager 시스템 관리 > Deployment Manager. 그런 다음, 서버 인프라 섹션에서 Java 및 프로세스 관리 > 프로세스 정의 > JVM(Java Virtual Machine)을 클릭하십시오.
Node agent 시스템 관리 > Node Agent > node_agent. 그런 다음, 서버 인프라 섹션에서 Java 및 프로세스 관리 > 프로세스 정의 > JVM(Java Virtual Machine)을 클릭하십시오.
클래스 경로

JVM(Java Virtual Machine) 코드가 클래스를 찾는 표준 클래스 경로를 지정합니다.

이 필드에 클래스 경로를 추가해야 하는 경우, 각 클래스 경로 항목을 개별 테이블 행으로 입력하십시오. 각 항목의 끝에 콜론이나 세미콜론을 추가할 필요가 없습니다.

이 필드에 추가되어야 하는 클래스 경로는 다음 항목의 위치만 지정합니다.
  • 시스템에 대한 검사 또는 모니터링 도구.
  • 이 제품 위에 실행하는 제품에 대한 JAR 파일.
  • JVM 진단 패치 또는 픽스.
이 필드에 다음 항목의 위치를 지정하는 클래스 경로를 추가하면 처리 오류가 발생할 수 있습니다.
  • 자원 프로바이더(예: DB2®)에 대한 JAR 파일. 이러한 JAR 파일에 대한 경로는 관련 프로바이더 클래스 경로에 추가되어야 합니다.
  • 제품에서 실행하는 하나 이상의 응용프로그램에 의해 사용되는 사용자 JAR 파일. 이 유형의 JAR 파일에 대한 경로는 JAR 파일이 필요한 각 응용프로그램 내에서 또는 서버 연관 공유 라이브러리에서 지정되어야 합니다.
  • 확장 JAR 파일. 시스템에 확장 JAR 파일을 추가해야 하는 경우 ws.ext.dirs JVM 사용자 정의 특성을 사용하여 이 JAR 파일에 대한 절대 경로를 지정해야 합니다. 해당 JAR 파일을 WAS_HOME/lib/ext/ 디렉토리에 둘 수도 있지만, ws.ext.dirs JVM 사용자 정의 특성을 사용하여 확장 JAR 파일에 대한 경로를 지정하는 방법이 권장됩니다.
데이터 유형 문자열
부팅 클래스 경로

JVM 코드에 대한 부트스트랩 클래스 및 자원을 지정합니다. 이 옵션은 부트스트랩 클래스 및 자원을 지원하는 JVM에 대해서만 사용 가능합니다.

이 필드에 클래스 경로를 추가해야 하는 경우, 각 클래스 경로 항목을 테이블 행으로 입력하십시오. 각 항목의 끝에 콜론이나 세미콜론을 추가할 필요는 없습니다.

이 필드에 다중 클래스 경로를 추가해야 하는 경우, JVM이 상주하는 운영 체제에 따라 콜론(:) 또는 세미콜론(;) 중 하나를 사용하여 해당 클래스 경로를 구분할 수 있습니다.

이 필드에 다중 클래스 경로를 추가해야 하는 경우, 노드가 상주하는 운영 체제에 따라 콜론(:) 또는 세미콜론(;) 중 하나를 사용하여 해당 클래스 경로를 구분할 수 있습니다.

이 필드에 추가되어야 하는 클래스 경로는 다음 항목의 위치만 지정합니다.
  • 시스템에 대한 검사 또는 모니터링 도구.
  • 이 제품 위에 실행하는 제품에 대한 JAR 파일.
  • JVM 진단 패치 또는 픽스.
이 필드에 다음 항목의 위치를 지정하는 클래스 경로를 추가하면 처리 오류가 발생할 수 있습니다.
  • 자원 프로바이더(예: DB2)에 대한 JAR 파일. 이러한 JAR 파일에 대한 경로는 관련 프로바이더 클래스 경로에 추가되어야 합니다.
  • 제품에서 실행하는 하나 이상의 응용프로그램에 의해 사용되는 사용자 JAR 파일. 이 유형의 JAR 파일에 대한 경로는 JAR 파일이 필요한 각 응용프로그램 내에서 또는 서버 연관 공유 라이브러리에서 지정되어야 합니다.
  • 확장 JAR 파일. 시스템에 확장 JAR 파일을 추가해야 하는 경우 ws.ext.dirs JVM 사용자 정의 특성을 사용하여 이 JAR 파일에 대한 절대 경로를 지정해야 합니다. 해당 JAR 파일을 WAS_HOME/lib/ext/ 디렉토리에 둘 수도 있지만, ws.ext.dirs JVM 사용자 정의 특성을 사용하여 확장 JAR 파일에 대한 경로를 지정하는 방법이 권장됩니다.
자세한 클래스 로딩

클래스 로드를 위한 상세한 디버그 출력 사용 여부를 지정합니다. 기본값은 자세한 클래스 로딩을 사용 가능하게 하지 않는 것입니다.

[AIX Solaris HP-UX Linux Windows] 자세한 클래스 로딩이 사용 가능하면, 디버그 출력이 기본 프로세스 로그 중 하나로 보내집니다.

데이터 유형 부울
기본값 false
자세한 가비지 콜렉션

가비지 콜렉션에 대한 상세한 디버그 출력 사용 여부를 지정합니다. 기본값은 상세한 가비지 콜렉션을 사용하지 않는 것입니다.

[AIX Solaris HP-UX Linux Windows] 자세한 가비지 콜렉션이 사용 가능하면, 디버그 출력이 기본 프로세스 로그 중 하나로 보내집니다.

데이터 유형 부울
기본값 false

이 필드가 사용 가능한 경우 가비지 콜렉터가 실행될 때마다 출력 스트림에 보고서가 기록됩니다. 이 보고서는 Java 가비지 콜렉션 작동 현황에 대한 정보를 제공해야 합니다.

판별할 verboseGC 보고서를 확인할 수 있습니다.
  • JVM이 가비지 콜렉션 수행에 소요하는 시간.
    JVM이 가비지 콜렉션 처리 시간의 5퍼센트 미만을 소요하는 것이 좋습니다. JVM이 가비지 콜렉션에서 소요되는 시간의 백분율을 판별하려면, 콜렉션을 완료하는 데 소요된 시간을 마지막 AF 이후의 시간으로 나눈 후 이 값에 100을 곱하십시오. 예를 들면, 다음과 같습니다.
    83.29/3724.32 * 100 = 2.236 percent

    가비지 콜렉션에서 5%가 넘는 시간이 소요되고 현재 가비지 콜렉션이 자주 발생하는 경우, Java 힙 크기를 늘려야 합니다.

  • 각각의 가비지 콜렉션 발생으로 할당된 힙이 증가하는 경우.

    할당된 힙이 증가하는지 판별하려면, 각각의 가비지 콜렉션 주기 이후에 할당되지 않은 상태로 남아 있는 힙의 백분율을 살펴보고, 백분율이 계속 줄어들고 있지 않은지 확인하십시오. 여유 공간의 백분율이 계속 줄어들면 가비지 콜렉션에서 가비지 콜렉션까지 힙 크기가 점차로 증가하는 것입니다. 이 상황은 응용프로그램에 메모리 누수가 있음을 나타낼 수도 있습니다.

[z/OS] z/OS 플랫폼에서 MVS™ 명령 콘솔, modify display, jvmheap을 실행하여 JVM 힙 정보를 표시할 수도 있습니다. 또한 서버 활동 및 간격 SMF 레코드를 확인할 수 있습니다. 또한 JVM 힙 크기를 PMI에서 사용할 수 있도록 하고 Tivoli® Performance Viewer를 사용하여 모니터할 수도 있습니다.

상세한 JNI

기본 메소드 호출에 대한 상세한 디버그 출력 사용 여부를 지정합니다. 기본값은 자세한 JNI(Java Native Interface) 활동을 사용 가능하게 하지 않는 것입니다.

데이터 유형 부울
기본값 false
초기 힙 크기

JVM 코드에 사용 가능한 초기 힙 크기(MB)를 지정합니다. 이 필드를 공백으로 두면 기본값이 사용됩니다.

[z/OS] z/OS의 경우, 제어기의 기본 초기 힙 크기는 48MB이고 하위(servant)의 기본 초기 힙 크기는 128MB입니다. 이 기본값은 31비트 및 64비트 구성에 모두 적용됩니다.

[AIX Solaris HP-UX Linux Windows] [iSeries] IBM i 및 분산 플랫폼의 경우, 기본 초기 힙 크기는 50MB입니다.

우수 사례: 이러한 기본값은 대부분의 응용프로그램에 대해 충분합니다.bprac
[iSeries] 문제점 방지: IBM i의 경우, 초기 힙 크기는 항상 최대 힙 크기보다 작아야 합니다. 초기 힙 크기 및 최대 힙 크기 특성을 같은 값으로 설정하지 마십시오.gotcha

이 설정을 늘리면 시작 시간을 줄일 수 있습니다. 가비지 콜렉션 발생 수가 줄어들면서 성능이 10% 향상됩니다.

Java 힙 크기가 증가하면 힙이 너무 커서 실제 메모리에 상주하지 못할 때까지 처리량이 계속 향상됩니다. 힙 크기가 사용 가능한 실제 메모리를 초과하여 페이징이 발생하면, 현저하게 성능이 떨어집니다.

최대 힙 크기

JVM 코드에 사용 가능한 최대 힙 크기(MB)를 지정합니다. 이 필드를 공백으로 두면 기본값이 사용됩니다.

기본 최대 힙 크기는 256MB입니다. 이 기본값은 31비트 및 64비트 구성 모두에 적용됩니다.

최대 힙 크기 설정을 늘리면 시작 시간을 줄일 수 있습니다. 최대 힙 크기를 늘리면, 성능은 10% 향상되고 가비지 콜렉션 발생 수를 줄입니다.

일반적으로 이 설정을 늘리면 힙이 너무 커서 실제 메모리에 상주하지 못할 때까지 처리량이 계속 향상됩니다. 힙 크기가 사용 가능한 실제 메모리를 초과하여 페이징이 발생하면, 현저하게 성능이 떨어집니다. 따라서 실제 메모리 내에 힙을 포함할 수 있는 값으로 이 특성을 지정해야 합니다.

[z/OS] 페이징을 방지하려면 각 프로세서에 최소 256MB의 실제 메모리와 Application Server마다 512MB의 실제 메모리를 허용하는 이 특성의 값을 지정하십시오. 페이징으로 인해 프로세서 활용도가 낮은 경우, 가능하면 최대 힙 크기를 늘리는 대신에 사용 가능한 메모리를 늘리십시오. 최대 힙 크기를 늘리면 성능이 향상되지 않고 떨어질 수도 있습니다.

[iSeries] IBM i의 경우, 이 특성을 0으로 설정하면 가비지 콜렉터는 가비지 콜렉터 임계값에 도달한 경우에만 실행됩니다. 0 이외의 값을 지정한 경우, 가비지 콜렉터는 힙 크기가 지정된 최대 크기에 도달할 때마다 실행됩니다. 하지만 일반 가비지 콜렉터와는 달리, 최대 크기에 도달하면 모든 응용프로그램 스레드는 계속 실행하기 전에 가비지 콜렉션 프로세스가 완료될 때까지 기다려야 합니다. 이 상황은 인해 원하지 않는 일시정지 시간이 발생할 수 있습니다. 따라서 예상치 않은 힙 증가를 처리하고 힙이 사용 가능한 메모리보다 증가하는 것을 방지하는 안전망으로 최대 힙 크기를 사용하십시오. 일반적인 환경에서는 지정된 최대 힙 크기에 절대 도달하지 않습니다.

우수 사례: 대부분의 응용프로그램에서는 기본값을 사용하면 됩니다. 가비지 콜렉션이 너무 자주 발생한다고 판단되면 자세한 가비지 콜렉션 특성을 사용하십시오. 가비지 콜렉션이 너무 자주 발생하는 경우, 최대 JVM 힙 크기를 늘리십시오.bprac
HProf 실행 [AIX Solaris HP-UX Linux Windows] [iSeries]

HProf 프로파일러 지원 사용 여부를 지정합니다. 다른 프로파일러를 사용하려면 HProf 인수 설정을 사용하여 사용자 정의 프로파일러 설정을 지정하십시오. 기본값은 HProf 프로파일러 지원을 사용하지 않는 것입니다.

HProf 실행 특성을 true로 설정하는 경우, HProf 인수 특성의 값으로 명령행 프로파일러 인수를 지정해야 합니다.

데이터 유형 부울
기본값 false
HProf 인수 [AIX Solaris HP-UX Linux Windows] [iSeries]

Application Server 프로세스를 시작하는 JVM 코드로 전달하기 위한 명령행 프로파일러 인수를 지정합니다. HProf 프로파일러 지원이 사용 가능할 때 인수를 지정할 수 있습니다.

HProf 인수는 HProf 실행 특성이 true로 설정된 경우에만 필요합니다.

디버그 모드

디버그 모드의 JVM 실행 여부를 지정합니다. 기본값은 디버그 모드 지원을 사용 가능하게 하지 않는 것입니다.

디버그 모드 특성을 true로 설정하는 경우, 디버그 인수 특성의 값으로 명령행 디버그 인수를 지정해야 합니다.

데이터 유형 부울
기본값 false
디버그 인수

Application Server 프로세스를 시작하는 JVM 코드로 전달하기 위한 명령행 디버그 인수를 지정합니다. 디버그 모드 특성이 true로 설정되면 인수를 지정할 수 있습니다.

동일한 노드의 다중 Application Server에서 디버깅이 사용 가능한 경우, 주소 인수에 동일한 값이 지정되지 않았는지 확인하십시오. 주소 인수는 디버깅에 사용되는 포트를 정의합니다. 디버깅이 사용 가능한 두 개의 서버가 동일한 포트 디버그를 사용하도록 구성된 경우, 서버가 시작하지 못할 수 있습니다. 예를 들어, 두 서버가 모두 디버그 인수가 address=7777(디버그 주소 인수의 기본값)로 구성되어 있을 수도 있습니다.

다중 Application Server에서 디버깅이 사용 가능한 경우, 주소 인수에 동일한 값이 지정되지 않았는지 확인하십시오. 주소 인수는 디버깅에 사용되는 포트를 정의합니다. 디버깅이 사용 가능한 두 개의 서버가 동일한 포트 디버그를 사용하도록 구성된 경우, 서버가 시작하지 못할 수 있습니다. 예를 들어, 두 서버가 모두 디버그 인수가 address=7777(디버그 주소 인수의 기본값)로 구성되어 있을 수도 있습니다.

데이터 유형 문자열
단위 Java 명령행 인수
일반 JVM 인수

Application Server 프로세스를 시작하는 JVM(Java Virtual Machine) 코드로 전달할 명령행 인수를 지정합니다.

일반 JVM 인수 필드에 다음 선택적 명령행 인수를 입력할 수 있습니다. 둘 이상의 인수를 입력하는 경우 각 인수 사이에 공백을 입력하십시오.
문제점 방지: 인수가 IBM® Developer Kit 전용인 경우, 다른 프로바이더(예: Microsoft® 또는 Hewlett-Packard)에서 JVM과 함께 해당 인수를 사용할 수 없습니다.gotcha
  • [z/OS] [AIX Solaris HP-UX Linux Windows] hotRestartSync:

    동기화 서비스의 즉시 다시 시작 동기화 기능을 사용 가능하게 하려는 경우 hotRestartSync를 지정하십시오. 이 기능은 Deployment Manager가 비활성 상태일 때 구성 갱신이 수행되지 않은 환경에서 설치가 실행 중임을 동기화 서비스에 표시합니다. 따라서 Deployment Manager 또는 Node Agent 서버 다시 시작 시 서비스가 전체 저장소 비교를 수행하지 않아도 됩니다. 이 기능을 사용 가능으로 설정하면 Deployment Manager 또는 Node Agent가 다시 시작된 이후, 특히 혼합 릴리스 셀을 포함하고 다수의 노드를 사용하고 다수의 응용프로그램을 실행하는 설치에 대한 첫 번째 동기화 조작의 효율성이 향상됩니다.

  • -Dcom.ibm.CORBA.RequestTimeout=timeout_interval

    이 인수는 z/OS에만 적용됩니다. 클라이언트에서 전송된 요청에 응답할 제한시간 기간을 설정하려면 -Dcom.ibm.CORBA.RequestTimeout= timeout_interval 인수를 지정하십시오. 이 인수는 -D 옵션을 사용합니다. timeout_interval은 제한시간 기간(초 단위)입니다. 네트워크에서 잠복 상태가 지나치게 긴 경우 제한시간 초과를 방지할 큰 값을 지정하십시오. 너무 작은 값을 지정하면 워크로드 관리에 참여하는 Application Server가 응답을 받기 전에 제한 시간 초과가 발생할 수 있습니다.

    응용프로그램에 제한시간 문제가 있는 경우에만 이 인수를 지정하십시오. 이 인수에 대한 권장 값은 없습니다.

  • -Dcom.ibm.websphere.wlm.unusable.interval=interval

    이 인수는 z/OS에만 적용됩니다. 클라이언트의 워크로드 관리 상태가 너무 이르거나 또는 너무 늦은 경우 com.ibm.websphere.wlm.unusable.interval 특성 값을 변경하려면 -Dcom.ibm.websphere.wlm.unusable.interval= timeout_interval 인수를 지정하십시오. 이 특성은 서버에 다시 접속하려고 시도하기 전에 사용 불가능으로 서버를 표시한 후 워크로드 관리 클라이언트 런타임이 대기하는 시간(초)을 지정합니다. 이 인수는 -D 옵션을 사용합니다. . 기본값은 300초입니다. 이 특성이 큰 값으로 설정되면 서버는 오랜 동안 사용 불가능으로 표시됩니다. 이로써 시간이 종료되는 이후까지 워크로드 관리 새로 고치기 프로토콜이 클라이언트의 워크로드 관리 상태를 새로 고치지 않도록 방지합니다.

  • [z/OS] -Dcom.ibm.ws.buffermgmt.impl.WsByteBufferPoolManagerImpl=

    이 인수는 z/OS에만 적용됩니다. 버퍼가 더 이상 필요하지 않게 되는 즉시 개별 직접 바이트 버퍼의 저장영역이 해제되어야 함을 표시하려면 -Dcom.ibm.ws.buffermgmt.impl.WsByteBufferPoolManagerImpl= 인수를 지정하십시오. 이 인수에 지원되는 유일한 값은 com.ibm.ws.buffermgmt.impl.ZOSWsByteBufferPoolManagerImpl입니다.

    JVM이 요청 데이터를 처리하기 위해 작성하는 직접 바이트 버퍼는 JVM 힙 대신 LE(Language Environment®) 힙에 할당됩니다. 일반적으로, 직접 바이트 버퍼가 더 이상 필요하지 않은 경우에도 JVM은 다음 가비지 콜렉션이 발생할 때까지 이 기본 LE 저장영역을 해제하지 않습니다. 서버가 대량 요청을 처리 중인 경우, JVM이 가비지 콜렉션 주기를 실행하기 전에 LE 기억장치가 소진될 수 있으며 이로 인해 서버가 비정상적으로 종료(이상 종료)됩니다. 다음 인수와 함께 JVM을 구성하면 이러한 이상 종료가 발생하지 않습니다.
    -Dcom.ibm.ws.buffermgmt.impl.WsByteBufferPoolManagerImpl=com.ibm.ws.buffermgmt.impl.ZOSWsByteBufferPoolManagerImpl

    [z/OS] z/OS 플랫폼에서는 TCP 채널의 zaioFreeInitialBuffers 사용자 정의 특성을 지정하여 이러한 버퍼가 더 이상 필요하지 않게 되는 즉시 채널이 새 연결에서 사용된 초기 읽기 버퍼를 해제해야 하는 경우에도 이 인수를 지정해야 합니다.

  • [AIX Solaris HP-UX Linux Windows] [z/OS] -server | -client

    Java SE 6의 Java 핫스팟 기술은 시간이 흐름에 따라 바이트 코드가 수행되는 방법을 최적화하는 적용 JVM 포함 알고리즘을 사용합니다. JVM은 두 가지 모드(-server-client)로 실행됩니다. 대부분의 경우, 확장된 시간 동안 보다 효율적인 런타임 성능이 가능한 -server 모드를 사용하십시오.

    기본 -client 모드를 사용하면, 서버 시작 시간은 빨라지고 더 작은 메모리 풋프린트가 작성됩니다. 그러나 이 모드는 확장 성능을 저하시킵니다. 서버 시작 시간이 성능보다 더 중요하지 않은 경우 성능을 개선하는 -server 모드를 사용하십시오. 프로세스 크기 및 서버 시작 시간을 모니터하여 -client -server 모드 사이의 성능 차이를 점검하십시오.

    [iSeries] 문제점 방지: IBM i에서는 이 인수가 지원되지 않습니다.gotcha
  • [AIX Solaris HP-UX Linux Windows] [z/OS] -Xquickstart
    기본 모드보다 낮은 최적화 레벨로 초기 컴파일을 하려는 경우 -Xquickstart를 지정하십시오. 또 나중에 샘플링 결과에 따라 기본 모드의 초기 컴파일 레벨로 다시 컴파일할 수 있습니다.
    우수 사례: -Xquickstart는 적당한 초기 속도가 최종 처리량보다 중요한 응용프로그램에서 사용하십시오. 몇몇 디버그 시나리오에서 하니스 및 단기 실행 도구를 테스트하면 시작 시간을 15 - 20% 개선할 수 있습니다.bprac
    [iSeries] 문제점 방지: IBM i에서는 이 인수가 지원되지 않습니다.gotcha
  • [AIX Solaris HP-UX Linux Windows] [z/OS] -Xverify:none

    클래스 로딩 중 클래스 확인 단계를 건너뛰려면 -Xverify:none을 지정하십시오. -Xverify:none을 사용하면 Java 클래스 확인이 사용 불가능해지므로 시작 속도가 10 - 15% 빨라질 수 있습니다. 그러나 이 인수를 지정하면 손상되거나 유효하지 않은 클래스 데이터가 발견되지 않습니다. 손상된 클래스 데이터를 로드한 경우, JVM은 예상치 않은 방식으로 작동하거나 JVM에서 장애가 발생할 수 있습니다.

    문제점 방지:
    • 인스트루먼테이션 오류가 발생한 경우 JVM에서 장애가 발생할 수 있으므로, 바이트 코드 수정을 한 경우에는 이 인수를 사용하지 마십시오.
    • 이 옵션이 적용되는 동안 JVM 장애가 발생하거나 JVM이 예상치 않은 방식으로 작동한 경우, JVM 문제점을 디버그하는 첫 번째 단계로 이 인수를 제거하십시오.
    • [iSeries] IBM i에서는 이 인수가 지원되지 않습니다.
    gotcha
  • [AIX Solaris HP-UX Linux Windows] [z/OS] -Xnoclassgc

    가비지 콜렉션 콜렉션을 사용 불가능하게 하려면 -Xnoclassgc를 지정하십시오. 이 인수로 더 많은 클래스를 다시 사용할 수 있고 성능이 약간 향상됩니다. 그러나 이러한 클래스에서 소유한 자원은 클래스가 호출되지 않을 경우에도 사용 중으로 남습니다.

    문제점 방지: 클래스 가비지 콜렉션의 성능 영향은 일반적으로 최소이며, 응용프로그램 클래스 로더를 많이 사용하는 Java EE(Java Platform, Enterprise Edition) 기반 시스템에서 클래스 가비지 콜렉션을 끄면 클래스 데이터의 메모리 누수를 효율적으로 작성할 수 있고, JVM에서 메모리 부족 예외가 발생합니다.gotcha

    가비지 콜렉션을 모니터하려는 경우 verbose:gc 구성 설정을 사용할 수 있습니다. 결과로 생성된 출력을 사용하여 이러한 자원 재사용의 성능 영향을 판별할 수 있습니다.

    -Xnoclassgc 인수를 지정하면, 응용프로그램을 재전개할 때마다 이전 버전의 응용프로그램에서 클래스와 정적 데이터를 지우도록 항상 Application Server를 다시 시작해야 합니다.

    [iSeries] 문제점 방지: IBM i에서는 이 인수가 지원되지 않습니다.이 플랫폼에서 클래스 가비지 콜렉션을 사용 불가능하게 하려면 -noclassgc 인수를 사용해야 합니다.gotcha
  • [AIX Solaris HP-UX Linux Windows] [z/OS] -Xgcthreads

    한 번에 여러 개의 가비지 콜렉션 스레드를 사용하려면 -Xgcthreads를 지정하십시오. 이 가비지 콜렉션 기술은 병렬 가비지 콜렉션으로 알려져 있습니다. 이 인수는 IBM Developer Kit에만 유효합니다.

    일반 JVM 인수 필드에 값을 입력할 때 시스템에서 실행 중인 프로세서 수도 입력하십시오. 예를 들어, 시스템에서 3개의 프로세서가 실행 중인 경우에는 -Xgcthreads 3을 입력하십시오. n개의 프로세서가 있는 노드에서 기본 스레드 수는 n입니다.

    우수 사례: 시스템에 둘 이상의 프로세서가 있으면 병렬 가비지 콜렉션을 사용해야 합니다. bprac
    [iSeries] 문제점 방지: IBM i에서는 이 인수가 지원되지 않습니다.gotcha
  • [AIX Solaris HP-UX Linux Windows] [z/OS] -Xnocompactgc

    힙 압축을 사용 불가능하게 하려면 -Xnocompactgc를 지정하십시오. 힙 압축은 가장 비싼 가비지 콜렉션 조작입니다. IBM 개발자 킷을 사용하는 경우 힙 압축을 방지해야 합니다. 힙 압축을 사용 불가능으로 하면 연관된 오버헤드를 모두 제거합니다.

    [iSeries] 문제점 방지: IBM i에서는 이 인수가 지원되지 않습니다.gotcha
  • [AIX Solaris HP-UX Linux Windows] [z/OS] -Xgcpolicy

    가비지 콜렉션 정책을 설정하려면 -Xgcpolicy를 지정하십시오. 이 인수는 IBM Developer Kit에만 유효합니다.

    처리량을 최적화하려는 경우 이 인수를 optthruput으로 설정하면, 가비지 콜렉션 일시정지가 길게 발생하는 경우 문제점을 작성하지 않습니다. 이 매개변수는 기본 매개변수이며, 권장되는 설정입니다.

    세대별 가비지 콜렉터를 사용 중인 경우에는 이 인수를 gencon으로 설정하십시오. 세대별 스키마는 가비지 콜렉션 일시정지 시간의 축소와 함께 높은 처리량을 달성하려고 합니다. 이 목표를 달성하기 위해 힙이 새 세그먼트와 오래된 세그먼트로 분할됩니다. 오래 활동한 오브젝트는 오래된 공간으로 승격되는 반면 활동기간이 짧은 오브젝트는 새 공간으로 빨리 가비지 콜렉트됩니다. gencon 정책은 많은 응용프로그램에 대해 상당한 이점을 제공합니다. 그러나 모든 응용프로그램에 적합하지는 않으며 일반적으로 조정하기가 더 어렵습니다.

    힙이 가득 차기 전에 스택에서 시작하는 응용프로그램 스레드를 추적하는 데 사용되는 동시 표시를 원하는 경우, 이 인수를 optavgpause로 설정하십시오. 이 매개변수가 지정되면 가비지 콜렉터 일시정지가 균일해지고 장기 일시정지가 두드러지지 않습니다. 그러나 이 정책을 사용하면 추가 작업을 수행해야 할 수도 있으므로 처리량이 감소됩니다.

    일반적으로 9개 이상의 프로세서를 사용하는 멀티프로세서 시스템에서 성능을 증가시키려면 이 인수를 subpool로 설정하십시오. 이 정책은 IBM System i, System p 및 System z 프로세서에서만 사용 가능합니다. subpool 정책은 힙이 오브젝트 할당을 위한 향상된 확장성을 제공하는 서브풀로 나뉘어지는 것을 제외하면 optthruput 정책과 유사합니다.

    [iSeries] 문제점 방지: IBM i에서는 이 인수가 지원되지 않습니다.gotcha
  • [AIX Solaris HP-UX Linux Windows] [z/OS] -XX

    Java SE 6(Java Platform, Standard Edition 6)에는 별도의 메모리 풀이 서로 다른 유효 기간의 오브젝트를 포함할 수 있는 생성 가비지 콜렉션이 있습니다. 가비지 콜렉션 주기는 유효 기간에 따라 서로 독립적으로 오브젝트를 수집합니다. 추가 매개변수를 사용하여 메모리 풀의 크기를 개별적으로 설정할 수 있습니다. 성능을 향상시키려면, 풀에 있는 오브젝트가 하나 이상의 가비지 콜렉션 주기보다 더 오래 지속되지 않도록 수명이 짧은 오브젝트가 있는 풀의 크기를 설정하십시오. NewSizeMaxNewSize 매개변수를 사용하여 새 생성 풀의 크기를 지정하십시오.

    첫 번째 가비지 콜렉션 주기보다 오래 지속되는 오브젝트는 다른 풀로 전송됩니다. 대기 오브젝트 풀의 크기를 지정하려면 SurvivorRatio 매개변수를 사용하십시오.SurvivorRatio. 가비지 콜렉션 통계를 모니터하려면, Tivoli Performance Viewer가 수집하는 오브젝트 통계를 사용하거나 구성 설정값에 verbose:gc 인수를 포함할 수 있습니다. 가비지 콜렉션에 병목 현상이 발생하는 경우, 다음 인수를 지정하여 사용자 환경에 더 적합하게 맞추도록 생성 풀 설정을 사용자 정의하십시오.
    -XX:NewSize=lower_bound 
    -XX:MaxNewSize=upper_bound
     -XX:SurvivorRatio=new_ratio_size 
    기본값은 다음과 같습니다.
    • NewSize=2m
    • MaxNewSize=32m
    • SurvivorRatio=32
    우수 사례: 그러나 힙 크기가 1GB보다 큰 JVM이 있는 경우에는 다음 값을 사용해야 합니다.
    • -XX:NewSize=640m
    • -XX:MaxNewSize=640m
    • -XX:SurvivorRatio=16
    bprac

    또는 전체 힙 크기의 50% - 60%를 새 생성 풀로 설정할 수 있습니다.

    [iSeries] 문제점 방지: IBM i에서는 이 인수가 지원되지 않습니다.gotcha
  • [AIX Solaris HP-UX Linux Windows] [z/OS] -Xminf

    사용 가능한 최소 힙 크기 백분율을 변경하려면 -Xminf를 지정하십시오. 사용 가능한 공간이 지정된 양보다 작으면 힙이 증가합니다. 재설정 사용 가능 모드에서, 이 인수는 미들웨어 및 임시 힙의 사용 가능한 공간의 최소 백분율을 지정합니다. 이 인수에 지정된 값은 0 - 1의 부동 소수점 수입니다. 기본값은 .3(30%)입니다.

    [iSeries] 문제점 방지: IBM i에서는 이 인수가 지원되지 않습니다.gotcha
  • [AIX Solaris HP-UX Linux Windows] [z/OS] -Xshareclasses:none

    프로세스의 공유 클래스 옵션을 사용 불가능하게 하려면 -Xshareclasses:none 인수를 지정하십시오. Java SE 6과 함께 사용 가능한 공유 클래스 옵션은 캐시에서 클래스를 공유할 수 있게 합니다. 캐시에서 클래스를 공유하면 시작 시간이 개선되고 메모리 풋프린트가 감소합니다. Application Server, Node Agent 및 Deployment Manager와 같은 프로세스는 공유 클래스 옵션을 사용할 수 있습니다.

    이 옵션을 사용하면 프로세스가 사용 중이지 않을 때 캐시를 지워야 합니다. 캐시를 지우려면 app_server_root/bin/clearClassCache.bat/sh 유틸리티를 호출하거나 프로세스를 중지한 다음 다시 시작하십시오.

    문제점 방지:
    • [Solaris] [iSeries] [HP-UX] IBM JVM for J2SE 5는 Solaris, HP 및 IBM i에서 지원되지 않습니다.
    • Application Server 프로세스에서 실행 중인 J2EE 응용프로그램 클래스는 공유 클래스 캐시에 추가되지 않습니다.
    gotcha
데이터 유형 문자열
단위 Java 명령행 인수
실행 가능 JAR 파일 이름

JVM 코드가 사용하는 실행 JAR 파일에 대한 전체 경로 이름을 지정합니다.

데이터 유형 문자열
단위 경로 이름
JIT 사용 불가능

JVM 코드의 JIT(Just-In-Time) 컴파일러 옵션을 사용 불가능하게 할지 여부를 지정합니다.

JIT 컴파일러를 사용 불가능으로 하면 처리량이 눈에 띄게 줄어듭니다. 그러므로 성능상 이유로 JIT를 사용 가능으로 하십시오.

데이터 유형 부울
기본값 false (JIT 사용 가능)
권장 JIT 사용 가능
운영 체제 이름

주어진 운영 체제에 대한 JVM 설정을 지정합니다.

프로세스가 시작되면, 프로세스는 운영 체제에 대한 JVM 설정으로 서버에 대해 지정된 JVM 설정을 사용합니다.

프로세스가 시작되면, 프로세스는 운영 체제에 대한 JVM 설정으로 노드에 대해 지정된 JVM 설정을 사용합니다.




표시된(온라인) 링크는 인터넷에 액세스해야 합니다.

관련 태스크
관련 참조
사용자 정의 특성 콜렉션
[AIX Solaris HP-UX Linux Windows]


파일 이름: urun_rconfproc_jvm.html