목표
이 자습서를 마치면 다음을 수행하게 됩니다.
- 트랜잭션 및 추적 이해
- 문제가 있는 거래 식별
- 앱에서 문제가 있는 세그먼트 검토 및 최적화
트랜잭션의 내용과 이유
웹 앱의 고객 활동은 앱이 웹 요청을 수신할 때 시작되고 응답이 반환될 때 종료되는 코드를 통해 경로를 생성합니다. 이러한 경로는 트랜잭션 또는 함수 호출과 메서드 호출로 구성된 작업 단위입니다.
구매에 대한 결제를 제출하는 고객과 같은 중요한 비즈니스 포인트에 대해 생각해 보십시오. 고객이 결제 처리에 실패했거나 상당한 지연 후에 처리되었다고 보고하는 경우 해당 실패의 원인을 추측해야 합니다. API로 인해 오류가 발생했습니까, 아니면 그날 일찍 배포된 최근 버그 수정 사항이었습니까?
성능 향상을 위해 트랜잭션 관찰
거래 UI는 문제의 원인을 진단하여 특정 거래의 성능을 개선할 수 있도록 도와줍니다. 다음 단계는 느린 트랜잭션을 식별하고 앱 성능을 개선하는 과정을 안내합니다.
거래 UI로 이동: one.newrelic.com > (앱 선택) > Monitor > Transactions이동합니다.
느린 트랜잭션 찾기:
- 페이지 상단에서 가장 시간이 많이 걸리는 순서대로 거래를 정렬하세요.
- Top 20 transactions[상위 20개 트랜잭션] 차트를 살펴보십시오. 이 목록은 애플리케이션의 로드를 줄일 수 있는 최상의 기회를 나타냅니다. 이러한 자주 호출되는 트랜잭션에서 시간을 절약하면 대량 요청이므로 애플리케이션의 공간이 줄어듭니다. 이 차트에서 상위 몇 개의 트랜잭션을 기록해 두십시오.
- 페이지 상단에서 가장 느린 평균 응답으로 거래를 정렬하십시오.
- Top 20 transactions[상위 20개 트랜잭션] 차트를 다시 살펴보십시오. 이제 이 차트는 특정 요청의 총 볼륨에서 요청당 평균 시간을 보여줍니다. 이 차트에서 상위 몇 개의 트랜잭션을 기록해 두십시오.
이 차트는 가장 시간이 많이 걸리는 트랜잭션을 보여줍니다.
이 차트는 가장 느린 트랜잭션을 보여줍니다.
성능 향상
코드 지연을 유발할 수 있는 트랜잭션을 식별했지만 문제에 대해 아는 것이 고객을 위한 솔루션을 찾는 것과는 다릅니다. 위에서 식별된 트랜잭션을 통해 코드에서 이 특정 경로가 가장 많은 시간을 소비하는 위치에 대한 분석을 찾을 수 있습니다.
각 트랜잭션에 대해 상위 20개 차트에서 해당 이름을 클릭하고 다음을 수행하십시오.
- 세그먼트 분류 차트를 확인하십시오. 이것은 요청이 대부분의 시간을 보내는 위치를 보여줍니다. 평균적으로 경로가 코드의 한 부분에서 중단되면 해당 세그먼트에서 최적화에 집중하십시오.
- 트랜잭션 추적 테이블을 확인하고 가장 느린 추적을 수집하십시오. 가장 느린 추적은 이상값이지만 앱 성능에 가장 큰 영향을 미치는 메서드, 데이터베이스 또는 HTTP 호출을 나타내는 좋은 지표입니다.
이제 느린 메서드, 요청 또는 잘 수행되지 않는 코드의 다른 부분 목록이 있어야 합니다. 이제 재미있는 부분이 있습니다. 실제 코딩입니다. 코드에서 수정 사항을 테스트한 후 다음 섹션으로 진행하여 작업을 확인하십시오.
작업 확인
문제의 범위를 파악하고 잠재적 솔루션을 찾았습니다. 수정 사항을 개발 단계로 푸시한 다음 일반적인 로드 테스트를 실행하여 앱이 프로덕션 환경에서 어떻게 실행되는지 파악합니다.
응답 시간을 모니터링할 때 앱의 트랜잭션을 주의 깊게 살펴보세요.