JVM 조정
ThingWorx 성능을 최적화하기 위해 수행해야 할 권장 JVM 설정이 몇 가지 있습니다. 아래 나열된 것 외에 JVM 매개 변수를 미세 조정하는 것은 작업 부하마다 다르며 ThingWorx를 사용하여 작성된 응용 프로그램에 따라 다릅니다. 사용자의 환경을 기반으로 한 특정 조정에 대해서는 PTC 지원에 문의하십시오.
필수 설정
설정
설명
-server
명시적으로 JVM을 서버 모드에서 실행하도록 지시합니다. 64비트 JDK를 사용할 때 기본적으로 설정하지만 가장 좋은 방법은 선언하는 것입니다.
-d64
명시적으로 JVM을 64비트 모드에서 실행하도록 지시합니다. 현재 JVM에서 자동으로 이를 감지하지만 가장 좋은 방법은 선언하는 것입니다.
XX:+UseG1GC
JVM에서 Garbage First Garbage Collector를 사용하도록 지시합니다.
-Dfile.encoding=UTF-8
JVM에서 Western이 아닌 알파벳이 올바르게 표시되도록 UTF-8을 기본 문자 집합으로 사용하도록 지시합니다.
-Djava.library.path
네이티브 라이브러리에 대한 경로를 지정합니다.
-Xms3072m(4GB 메모리의 시스템용)
JVM에서 Tomcat 프로세스에 최소 3072MB의 메모리를 할당하도록 지시합니다. 사용 가능한 시스템 메모리의 75%로 설정되어야 합니다.
* 
메모리의 양은 실제 환경에 따라 조정되어야 합니다.
-Xmx3072m(4GB 메모리의 시스템용)
JVM에서 Tomcat 프로세스에 최대 메모리를 제한하도록 지시합니다. 사용 가능한 시스템 메모리의 75%로 설정되어야 합니다.
* 
최소 메모리 양과 최대 메모리 양을 같게 만든 이유는 JVM이 필수 메모리를 다시 평가하고 런타임 시 할당 크기를 조정해야 하는 상황을 줄이기 위해서입니다. 이는 호스트된 환경 및/또는 공용 환경에 권장되며, 개발 및 테스트 환경의 경우 –Xms512m을 사용해도 됩니다. 또한 운영 체제가 작동할 수 있도록 충분한 메모리가 남아 있는지 확인하십시오.
-Dlog4j2.formatMsgNoLookups=true
JMX 모니터링을 사용하기 위한 선택적 설정
메모리 문제가 있다고 생각되면 다음 도구를 참조하여 시스템 모니터링에 대한 자세한 내용을 살펴보십시오. 나열된 설정을 통해 이러한 도구를 ThingWorx에서 사용되는 Tomcat 인스턴스에 연결하여 JVM 특성을 모니터링할 수 있습니다.
설정
설명
-Dcom.sun.management.jmxremote
JMX를 통해 원격 모니터링할 것임을 JVM에 알립니다.
-Dcom.sun.management.jmxremote.port=22222
JVM이 모니터링하기 위해 열어야 할 포트입니다.
-Dcom.sun.management.jmxremote.ssl=false
SSL을 사용하지 않습니다.
-Dcom.sun.management.jmxremote.authenticate=false
인증이 필요하지 않습니다.
-Djava.rmi.server.hostname=<호스트 또는 IP>
기본 RMI 클라이언트 연결이 사용할 호스트 이름 또는 IP입니다.
-Xmx 매개 변수 값 업데이트
설치 프로그램을 사용할 때 다음 단계를 수행하여 서비스 파일에서 모든 Java 힙 설정을 MB 단위로 설정해야 합니다.
1. systemctl stop ThingWorx-Foundation.service 명령을 사용하여 기본 위치 /etc/systemd/system/ThingWorx-Foundation.service에서 ThingWorx-Foundation.service를 중지합니다.
2. 서비스 상태가 중지됨인지 확인하려면 systemctl stop ThingWorx-Foundation.service 명령을 실행합니다.
3. 터미널에서 vi 명령을 사용하여 ThingWorx-Foundation.service 파일을 보고 -Xmx 매개 변수 값을 변경합니다. 파일에 루트 권한이 있는지 확인합니다. 예를 들어 아래 스크린샷을 참조하십시오.
4. -Xmx 매개 변수 값을 gb에서 mb로 변경하고 단위를 m으로 유지합니다. 초기 힙 값보다 큰지 확인합니다. 예를 들어 아래 스크린샷을 참조하십시오.
5. systemctl daemon-reload 명령을 실행합니다.
6. systemctl start ThingWorx-Foundation.service 명령을 사용하여 ThingWorx-Foundation 서비스를 시작합니다.
7. 업그레이드 설치 관리자를 다시 실행합니다.
자세한 내용은 PTC 지원 문서 CS397788을 참조하십시오.
도움이 되셨나요?