메모리 문제 줄이기에 대한 모범 사례
ThingWorx 응용 프로그램을 개발하고 모니터링할 때 다음 모범 사례를 사용하여 메모리 기반 성능 문제를 방지하십시오.
ThingWorx 응용 프로그램 함수에서 메모리 일일 사용량을 모니터링합니다. 이렇게 하면 응용 프로그램의 메모리 사용을 정상 상태와 스트레스 조건에서 이해할 수 있습니다.
Apache JMeter 또는 유사한 유틸리티를 사용하여 생산 유사 데이터로 확장성 테스트를 수행하여 ThingWorx 응용 프로그램과 동시에 상호 작용하는 여러 사용자 및 장치를 모델링합니다.
확장성 테스트에 충분한 시스템 리소스가 할당되어 있는지 확인해야 합니다. 대부분의 생산 시스템에는 64GB의 RAM이 필요하며 이중 40GB는 Java 힙에 할당됩니다.
스트림 질의는 JVM 메모리에서 많은 레코드를 필터링하기 전에 데이터베이스에서 많은 수의 기록을 검색할 수 있습니다. 스트림으로 검색하는 행 수를 최소화하기 위해 적절한 시간 간격을 추가하는 것이 좋습니다. 이는 매일 생산 용도로 사용 시 데이터가 축적되기 시작할 때 특히 유용합니다.
가능한 경우 데이터베이스 서버, 마이크로 서비스 서버 또는 페더레이션 ThingWorx 서버와 같은 외부 시스템을 메모리 사용량이 많은 처리에 사용하십시오.
장기 실행 서비스를 최적화합니다. 10분 이상 실행되는 서비스는 실행 중 메모리, 데이터베이스 연결 및 기타 서버 리소스를 잠글 가능성이 높습니다. 또한 예약된 서비스는 시스템에 메모리 리소스가 반환되도록 10분 이내에 실행되고 완료되어야 합니다.
생산 용도로 고가용성 클러스터를 구현하십시오. 이렇게 하면 ThingWorx 노드 중 하나에 메모리 문제가 발생해도 전체 응용 프로그램을 계속 사용할 수 있습니다.