아래 다이어그램은 성능 문제를 해결하기 위해 수행해야 하는 단계에 대한 지침을 제공하기 위한 것입니다. 읽기 쉽도록 5개 섹션으로 나누어져 있습니다.
다이어그램의 각 단계는 설명서 리소스 또는 권장 사항에 연결됩니다.
성능 문제가 주어진 페이지(AEM 콘솔 또는 웹 페이지)에서 관찰되어 일관되게 재현될 수 있다고 가정합니다. 테스트를 시작하기 전에, 성능을 테스트하거나 모니터링하는 방법을 알고 있어야 합니다.
분석은 0단계에서 시작됩니다. 목표는 성능 문제를 담당하는 엔터티(디스패처, 외부 호스트 또는 AEM)을 확인하고 어떤 영역(서버 또는 네트워크)을 조사해야 하는지 결정하는 것입니다.
단계 | 제목 | 리소스 |
0단계 | 요청 흐름 분석 | 브라우저에서 표준 HTTP 요청 분석을 사용하여 요청 흐름을 분석할 수 있습니다. Chrome에서 이 작업을 수행하는 방법에 대한 자세한 내용은 다음을 참조하십시오. https://developers.google.com/web/tools/chrome-devtools/profile/network-performance/resource-loading |
2단계 | 외부 호스트에서 요청이 오고 있습니까? | 브라우저에서 표준 HTTP 요청 분석을 사용하여 요청 흐름을 분석할 수 있습니다. Chrome에서 이 작업을 수행하는 방법에 대한 위의 링크를 참조하십시오. |
3단계 | 요청을 캐시할 수 있습니까? | 캐시 가능한 요청 및 일반 Dispatcher 성능 최적화 조언에 대한 자세한 내용은 Dispatcher 성능 최적화. |
4단계 | Dispatcher에서 요청이 오고 있습니까? | 을(를) 확인합니다. Dispatcher 디버깅 설명서 요청이 제대로 캐시되는지 확인합니다. |
5단계 | Dispatcher가 AEM을 통해 각 요청을 인증하려고 합니까? | 디스패처가 전송하는지 확인 HEAD 캐시된 리소스를 제공하기 전에 AEM에 인증을 요청합니다. 찾아보시면 됩니다 HEAD AEM의 요청 access.log . 자세한 내용은 로깅. |
6단계 | Dispatcher의 지리적 위치가 사용자와 멀리 있습니까? | Dispatcher를 사용자에게 더 가깝게 이동합니다. |
7단계 | Dispatcher의 네트워크 레이어가 작동합니까? | 네트워크 계층에서 채도 및 지연 문제를 조사합니다.
|
8단계 | 로컬 인스턴스에서 느림이 재현됩니까? | 사용 Tough Day 운영 인스턴스에서 "실제" 조건을 복제하기 위해 개발 환경에 적합하지 않은 경우 다른 네트워크 컨텍스트에서 프로덕션 인스턴스(또는 동일한 스테이징 인스턴스)를 테스트해야 합니다. |
9단계 | 서버의 지리적 위치가 사용자와 멀리 떨어져 있습니까? | 서버를 사용자에게 더 가깝게 이동합니다. |
10단계 및 29단계 | 네트워크 계층 조사 | 네트워크 계층에서 채도 및 지연 문제를 조사합니다. 작성 계층의 경우 지연이 100밀리초를 넘지 않는 것이 좋습니다. 성능 최적화 팁에 대한 자세한 내용은 이 페이지. |
11단계 | 서버를 더 가깝게 이동하거나 영역당 하나 추가 | |
12단계 | AEM 서버 문제 해결 | 자세한 내용은 다이어그램에서 다음 하위 단계를 확인하십시오. |
13단계 | 하드웨어 요구 사항 확인 | 다음 문서를 확인하십시오. 하드웨어 크기 조정 지침. |
14단계 | 성능 문제의 자주 발생하는 원인 확인 | |
15단계 | 느린 요청 찾기 | 를 분석하여 느린 요청을 확인할 수 있습니다 rlog.jar 사용에 대한 자세한 내용은 이 페이지를 참조하십시오. 자세한 내용은 rlog.jar를 사용하여 오랜 기간 동안 요청을 찾습니다.
|
16단계 | 프로필 서버 | AEM에서 사용할 수 있는 프로파일링 도구에 대한 자세한 내용은 성능 모니터링 및 분석 도구. |
17단계 | 프로파일링에서 느린 방법 찾기 | |
18단계 | 프로파일링의 일반적인 시나리오 | 자세한 내용은 특정 시나리오 분석 성능 최적화 섹션에 있습니다. |
19단계 | 100% CPU | https://helpx.adobe.com/kr/experience-manager/6-3/sites-deploying/monitoring-and-maintaining.html#MonitoringPerformance |
20단계 | 메모리가 부족합니다. | |
21단계 | 디스크 I/O | 자세한 내용은 디스크 I/O 모니터링 및 유지 관리 설명서의 섹션을 참조하십시오. |
22단계 및 22.1단계 | 캐시 비율 | 자세한 내용은 디스패처 캐시 비율 계산. |
23단계 | 느린 쿼리 | 쿼리 및 색인 생성에 대한 우수 사례 |
24단계 | 저장소 조정 | |
25단계 | 실행 중인 워크플로우 |
|
26단계 | MSM 인프라 | |
27단계 | 자산 조정 |
|
28단계 | 닫히지 않은 세션 |
|
30단계 | 디스패처를 더 가깝게 이동("지역"당 하나 추가) | |
31단계 | Dispatcher 앞에 CDN 사용 | CDN에 Dispatcher 사용 |
32단계 | 디스패처 수준에서 세션 관리를 사용하여 AEM 서버 오프로드 사용 | |
33단계 | 요청 캐시 가능 |
캐시 비율 개선 방법 요청 캐시 가능(Dispatcher 우수 사례) 또한 캐싱 구성을 최적화하려면 아래 설정을 고려하십시오
|
34단계 | Dispatcher 버전 업그레이드 | 이 위치에서 최신 Dispatcher 버전을 다운로드할 수 있습니다. |
35단계 | Dispatcher 구성 | Dispatcher 구성 |
36단계 | 캐시 무효화 확인 | |
37단계 및 38단계 | 지연 로드 | AEM Web Performance의 Gem Session 을 참조하십시오. |
39단계 | 연결 오버헤드를 줄이려면 연결 미리 연결 사용 | 위에 표시된 Gem 세션을 참조하십시오. 또한 W3c에서 추가 설명서 사전 연결: https://www.w3.org/TR/resource-hints/#dfn-preconnect |
40단계 및 41단계 |
외부 호스트 지연 및 응답 시간 | 외부 호스트에 대한 지연 및 응답 시간을 조사합니다. |
45단계 및 47 |
HTTP/2 사용 | 37,38단계 및 39단계는 Gem Session 을 참조하십시오. 또한, 이 http/2 지원에 대한 포럼 게시물. |
49단계 | 페이로드 크기 축소 | Gzip 활성화 및 이미지 크기 축소. |
42단계 및 43 | Keep-Alive | 은 확인할 수 있습니다 프록시 서버 도구 을 눌러 Keep-Alive 연결을 확인합니다. |
44단계 | 요청은 몇 개입니까? | 브라우저에서 표준 HTTP 요청 분석을 수행합니다. |
46단계 | 요청 수 감소 |
|
48단계 | 페이로드 크기가 어떻게 됩니까? | 브라우저의 표준 HTTP 요청 분석 |
50단계 및 51단계 | JS 코드 차단 | AEM 웹 성능 |