PSM을 사용하여 데이터베이스 성능 모니터링
PSM은 ThingWorx 응용 프로그램에서 시작한 대부분의 데이터베이스 질의를 캡처합니다. 데이터베이스 수준의 연결 풀 사용에서 느린 실행 문을 강조 표시하는 대시보드를 포함하며 데이터베이스에 전송된 바인딩 변수를 캡처합니다.
PSM은 사용자가 시작한 트랜잭션을 모니터링합니다. 따라서 PSM은 사용자측 데이터베이스 트랜잭션만 추적합니다. 데이터베이스 성능 문제가 스케줄러, 타이머 또는 비동기 프로세스에서 발생하는 경우 해당하는 질의가 PSM에서 수집되지 않습니다.
성능이 느린 모든 기간에 대해 해당 데이터베이스 트랜잭션을 추적할 수 있습니다. 차트 또는 대시보드를 마우스 오른쪽 버튼으로 클릭하여 질의 보기를 엽니다. 예를 들어, CPU 스파이크 또는 느린 PurePath를 식별하는 경우 해당 기간에 발생하는 해당 데이터베이스 질의로 드릴 다운할 수 있습니다.
다음 예에서는 느린 데이터 테이블 질의 및 해당 데이터베이스 질의를 식별한 후 QueryDataTableEntries API를 수행하는 응용 프로그램의 코드를 최적화합니다.
PSM은 응용 프로그램의 연결 풀링 세부 정보를 표시합니다. 데이터베이스 대시보드에는 다음 예와 같이 연결 풀의 전체 사용량이 표시됩니다.
ThingWorx에서는 연결 풀을 사용합니다. 풀 연결의 기본값은 100으로 설정됩니다. 풀의 모든 연결이 동시에 사용되는 경우 응용 프로그램이 응답하지 않는 것처럼 보일 수 있습니다. 이 문제를 해결하려면 추가 연결을 할당하기 전에 필요 이상으로 오랫동안 연결을 보유하는 느린 트랜잭션이 있는지 확인합니다.
ThingWorx에서는 다음 연결 풀을 사용합니다.
C3P0 라이브러리에서 관리하는 기본 제공 지속성 공급자 연결입니다.
데이터베이스 사물에서 만든 다른 보조 JDBC 연결은 Apache 라이브러리를 사용하여 추적됩니다.
PSM 데이터베이스 개요 대시보드에서 연결 풀이 포화 상태인 기간을 분리할 수 있습니다. 지정된 시간에 실행 중인 질의를 확인할 수 있습니다. 이렇게 하면 연결 풀링 문제를 진단하는 데 도움이 됩니다. ThingWorx 응용 프로그램에서 더 오랫동안 연결을 보유 중인 기본 질의를 해결해야 합니다.