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