JVM (Java Virtual Machine): IBM® 매개변수 튜닝

Java힙의 분할을 줄이고 성능을 개선하는 데 도움이 될 수 있는 JVM (Java™ Virtual Machine) 매개변수를 설정할 수 있습니다.

자바 힙의 분할은 처리되는 오브젝트의 수가 증가함에 따라 발생할 수 있습니다. 힙의 분할을 줄이기 위해 설정할 수 있는 매개변수가 다수 있습니다.
  • kCluster는 클래스 블록에 독점적으로 사용되는 스토리지 영역입니다. 이 영역에는 1280개의 항목을 보유할 수 있습니다. 각 클래스 블록은 256바이트입니다. 보통 이 기본값은 너무 작아서 힙 분할로 이어질 수 있습니다. 힙 분할을 줄이려면 다음과 같이 kCluster 매개변수 -Xk를 설정하십시오. 이것은 시작 값으로 사용자 환경에 맞게 조정할 수 있습니다. 이상적 크기를 판별하는 데에는 힙 덤프를 분석하는 것이 가장 좋습니다.
    • Topology: -Xk8300
    • EventsCore: -Xk3500
    • DiscoverAdmin: -Xk3200
    • Proxy: -Xk5700
    • Discover: -Xk3700
    JVM 공급업체별 설정 절의 항목을 추가하여 collation.properties 파일에서 이 변경사항을 구현하십시오. 예를 들어, 토폴로지 서버에 대해 이 변경을 구현하려면 다음 라인을 추가하십시오.
    com.collation.Topology.jvmargs.ibm=-Xk8300
  • 분할 문제의 또다른 옵션은 64K를 초과하는 대규모 오브젝트용으로 공간을 할당하는 것입니다. -Xloratio 매개변수를 사용하십시오. 예를 들면 다음과 같습니다.
    • -Xloratio0.2

    이 명령은 활성 자바 힙의 x% (-Xmx 의 x% 이 아니라 현재 자바 힙 크기의 x%) 를 대형 오브젝트 (64KB이상) 의 할당에 예약한다. 변경이 있을 경우 소규모 오브젝트 영역의 크기가 줄어들지 않도록 -Xmx도 변경해야 합니다. 이 매개변수의 이상적 설정을 판별하는 데에는 힙 덤프 분석이 가장 좋습니다.

자바 성능에 영향을 주는 몇 가지 추가 매개변수를 설정할 수 있습니다. 기존 JVM 옵션을 다른 갓으로 변경하려면 다음 파일 중 하나를 편집하십시오.
  • TADDM 7.3.0의 도메인 서버의 경우, $COLLATION_HOME/deploy-tomcat/ROOT/WEB-INF/cmdb-context.xml 파일입니다.
  • TADDM 7.3.0.1 이상의 도메인 서버의 경우 $COLLATION_HOME/apps/ROOT/WEB-INF/cmdb-context.xml 파일입니다.
  • TADDM 7.3.0의 동기화 서버의 경우 $COLLATION_HOME/deploy-tomcat/ROOT/WEB-INF/ecmdb-context.xml 파일입니다.
  • TADDM 7.3.0.1 이상의 동기화 서버의 경우 $COLLATION_HOME/apps/ROOT/WEB-INF/ecmdb-context.xml 파일입니다.
  • TADDM 7.3.0의 감지 서버의 경우 $COLLATION_HOME/deploy-tomcat/ROOT/WEB-INF/discovery-server-context.xml 파일입니다.
  • TADDM 7.3.0.1 이상의 감지 서버의 경우 $COLLATION_HOME/apps/ROOT/WEB-INF/discovery-server-context.xml 파일입니다.
  • TADDM 7.3.0의 스토리지 서버의 경우 $COLLATION_HOME/deploy-tomcat/ROOT/WEB-INF/storage-server-context.xml 파일입니다.
  • TADDM 7.3.0.1 이상의 스토리지 서버의 경우 $COLLATION_HOME/apps/ROOT/WEB-INF/storage-server-context.xml 파일입니다.
TADDM 서비스의 설정을 변경하기 위해 이 파일을 편집하려면 먼저 파일에서 서비스를 찾으십시오. 다음 예제는 XML 파일에서 서비스 정의의 시작부를 보여줍니다.
<bean id="Discover" 
	class="com.collation.platform.service.ServiceLifecycle" init-method="start" 
	destroy-method="stop">
	<property name="serviceName">
		<value>Discover</value>
	</property>

  
정의에는 JVM 인수를 제어하는 요소와 속성이 있습니다. 예를 들면 다음과 같습니다.
<property name="jvmArgs">
	<value>-Xms8M;-Xmx512M;
	-Djava.nio.channels.spi.SelectorProvider=sun.nio.ch.PollSelectorProvider
	</value>
</property>
JVM 인수는 다음과 같은 요소에서 세미콜론으로 구분한 목록으로 설정할 수 있습니다.
<property name="jvmArgs"><value>
collation.properties 파일의 JVM 특성을 수정할 수도 있습니다. 이러한 특성은 다음 양식 중 하나를 보유할 수 있습니다.
com.collation.JVM.jvmargs.VENDOR
이 특성은 *-config.xml 파일에서 읽히는 값에 추가됩니다.
com.collation.jvmargs.VENDOR
이 특성은 모든 TADDM JVM에 추가됩니다.
com.collation.JVM.jvmargs
이 특성은 *-config.xml 파일에 지정된 모든 값을 겹쳐씁니다.
여기서
  • JVM is Proxy, Topology, EventsCore, ExcmdbCore, DiscoverAdmin, StorageService, DiscoveryService
  • VENDOR is ibm or sun