Sun Identity Manager 8.1 릴리스 노트

Identity Manager 프로필러 작업

Identity Manager에서는 사용자의 배포에서 양식, Java, 규칙, 작업 흐름 및 XPRESS의 성능 문제를 해결하는 데 도움이 되는 프로필러 유틸리티를 제공합니다.

양식, Java, 규칙, 작업 흐름 및 XPRESS는 모두 성능 및 확장성 문제의 원인이 될 수 있습니다. 프로필러는 이러한 다양한 영역에 소요되는 시간을 프로필링하여, 해당 양식, Java, 규칙, 작업 흐름 또는 XPRESS 객체로 인해 성능 및 확장성 문제가 발생하는지 확인하고 그럴 경우 이러한 객체의 어느 부분이 문제의 원인인지를 확인할 수 있도록 합니다.

이 절에서는 Identity Manager 프로필러를 사용하는 방법을 설명하고 사용자의 배포에서 성능 문제를 해결하는 방법을 알려주는 자습서를 제공합니다.

이 정보는 다음 항목으로 구성되어 있습니다.


주 –

Identity Manager 프로필러는 버전 7.1 Update 1 이상에서만 지원됩니다.


개요

이 절에서는 Identity Manager 프로필러의 특징과 기능을 개략적으로 설명합니다. 이 정보는 다음과 같이 구성됩니다.

주요 기능

프로필러 유틸리티를 사용하여 다음을 수행할 수 있습니다.

프로필러에서 소스를 찾아 관리하는 방법

이 절에서는 프로필러가 다음 Identity Manager 객체에 대한 소스를 조회하고 관리하는 방법을 설명합니다.


참고 –

호출 트리 보기 또는 핫스폿 보기에서 Java 메소드, 작업 흐름, 양식, 규칙 또는 XPRESS에 해당하는 노드를 두 번 눌러 해당 노드에 대한 소스를 볼 수 있습니다.


양식, 규칙, 작업 흐름 및 XPRESS 객체의 경우

프로필러를 사용하여 스냅샷을 찍으면 서버에서 모든 프로필링 데이터를 평가하고 해당 데이터가 종속되는 소스를 검색합니다. 그런 다음 서버는 저장소에서 이러한 모든 소스를 불러와서 스냅샷에 포함합니다. 따라서 스냅샷에 표시된 Identity Manager 객체가 스냅샷이 캡처된 지점을 정확하게 반영하는지 확인할 수 있습니다.

이 프로세스에서는 스냅샷의 크기가 추가되지만, 실제로 소스 크기는 총 크기에 비해 상대적으로 작습니다. 따라서 소스 파일을 개별적으로 보낼 필요 없이 스냅샷을 Sun 고객 지원 담당자에게 보낼 수 있습니다.

Java 소스의 경우

Java 소스의 스냅샷을 찍으면 클라이언트에서 해당 스냅샷을 다운로드한 다음 스냅샷을 통해 프로젝트에서 참조되는 모든 Java 소스를 캡처합니다. 스냅샷을 저장하면 클라이언트는 소스를 압축하여 스냅샷의 끝에 첨부합니다.

그런 다음 사용자가 스냅샷을 보고 Java 소스로 이동하면 클라이언트는 먼저 스냅샷의 컨텐트를 확인합니다. 클라이언트는 거기서 컨텐트를 찾을 수 없는 경우 프로젝트의 컨텐트를 확인합니다. 이 프로세스를 통해 사용자 정의 Java 코드와 Identity Manager 코드 모두의 프로필링 데이터를 포함하는 스냅샷을 보낼 수 있습니다.


주 –

Java 소스 스냅샷에서는 소스가 서버에서 최신 버전이거나 항상 사용 가능하다고 간주하지 마십시오.


통계 경고

다음 절에서는 프로필러가 제공하는 결과를 평가할 때 고려할 정보에 대해 설명합니다.

자체 시간 통계

루트 노드의 자체 시간 통계를 계산하기 위해 프로필러에서는 루트 노드의 총 시간에서 모든 하위 노드의 시간을 뺍니다.

따라서 계측되지 않은 하위 노드 시간은 루트 노드의 자체 시간에 반영됩니다. 루트 노드에 상당한 자체 시간이 있을 경우 그 이유를 확실하게 조사해야 합니다. 적절한 메소드가 계측되지 않았을 수도 있습니다. 그럴 경우 자체 시간이 발생한 이유를 잘못 파악하게 됩니다.

예를 들어, 메소드 A가 메소드 B를 호출한다고 가정해 봅시다.

메소드 A를 호출하는 데 총 10초(총 시간에 B 호출 시간 포함)가 걸리고 B를 호출하는 데 총 10초가 걸립니다.

A와 B 모두 계측된 경우 호출 스택은 해당 정보를 반영합니다. A는 자체 시간이 0초로 표시되고 B는 자체 시간이 10초(실제로 B에서 10초가 소요됨)로 표시됩니다. 그러나 B가 계측되지 않은 경우에는 A를 호출하는 데 10초가 걸리고 A의 자체 시간이 10초로 표시됩니다. 따라서 B가 아니라 A에 직접적인 문제가 있다고 가정할 수 있습니다.

특히 초기 컴파일 중에 JSP에서 큰 자체 시간을 확인할 수 있습니다. 수집된 결과를 재설정한 다음 페이지를 다시 표시하면 자체 시간 값이 훨씬 작아집니다.

구성자 호출

Java 계측 전략에는 제한이 있기 때문에 this() 또는 super()에 대한 초기 호출은 구성자 호출의 하위가 아니라 형제로 표시됩니다. 다음 예를 참조하십시오.


class A
{
   public A()
   {
      this(0);
   }
   public A(int i)
   {
   }
}

and:

class B
{
   public static void test()
   {
      new A();
   }
}
The call tree will look like this:
B.test()
   -A.<init>(int)
   -A.<init>()
Rather than this:
B.test()
   -A.<init>()
      -A.<init>(int)

데몬 스레드

ReconTask.WorkerThread.run() 또는 TaskThread.WorkerThread.run()과 같은 &Product_IDMgr의 여러 데몬 스레드에 소요된 시간이 표면상 많은 것으로 나타나더라도 이를 잘못 판단하지 마십시오. 이중 대부분의 시간은 이벤트를 기다리는 동안 휴면 상태에서 소비된 시간입니다. 이러한 추적을 조사하여 이벤트를 처리할 때 실제로 소요된 시간을 확인해야 합니다.

시작하기

이 절에서는 프로필러를 시작하는 방법과 프로필러의 다양한 그래픽 사용자 인터페이스 기능을 사용하는 방법을 설명합니다. 이 정보는 다음과 같이 구성됩니다.

시작하기 전에

프로필러는 상당히 메모리 집약적이므로 서버와 Netbeans JVM(Java Virtual Machine) 모두의 메모리를 대폭 늘려야 합니다.

    서버의 메모리를 늘리려면

  1. Netbeans 창을 열고 런타임 탭을 선택합니다.

  2. 서버 노드를 확장하고 번들로 제공된 Tomcat을 마우스 오른쪽 버튼으로 누르고 메뉴에서 등록 정보를 선택합니다.

  3. 서버 관리자 대화 상자가 표시되면 연결 탭의 HTTP 모니터 사용 확인란을 선택 취소합니다.

  4. 플랫폼 탭을 선택하고 VM 옵션을 -Xmx1024M으로 설정한 다음 닫기를 클릭합니다.

    Netbeans JVM 메모리를 늘리려면

  1. netbeans-installation-dir\etc\netbeans.conff 파일을 열고 다음 행을 찾습니다.

    netbeans_default_options="-J-Xms32m -J-Xmx ...

  2. -J-Xmx 값을 -J-Xmx 1024M으로 변경합니다.

  3. 파일을 저장한 다음 닫습니다.

끝나면 다음 절에 설명한 대로 프로필러를 시작할 수 있습니다.

프로필러 시작

Identity Manager IDE 창에서 다음과 같은 방법을 사용하여 프로필러를 시작할 수 있습니다.


주 –

주 Identity Manager 프로젝트의 버전이 7.1 Update 1 이상이면 주 프로젝트의 Identity Manager 프로필러 시작 아이콘이 활성화됩니다.


프로필러를 시작하면 사용하려는 프로필링 옵션을 지정할 수 있는 프로필러 옵션 대화 상자가 표시됩니다. 이러한 옵션을 설정하는 지침은 프로필러 옵션 지정에 나와 있습니다.

프로필러 사용

이 절에서는 프로필러 그래픽 사용자 인터페이스의 기능과 그 기능을 사용하는 방법에 대해 설명합니다. 이 정보는 다음과 같이 구성됩니다.

프로필러 옵션 지정

프로필러 옵션 대화 상자는 다음 탭으로 구성되어 있습니다.

이 탭의 옵션을 사용하여 프로필링할 객체 및 프로필에 표시할 요소를 나타냅니다.

프로필러 옵션을 지정한 후 확인을 눌러 프로필러를 시작합니다. 프로젝트 구성에 따라 프로필러는 다음 두 가지 중 하나를 수행합니다.


주 –

IdM -> Identity Manager 인스턴스 설정을 선택하여 프로젝트에 대한 Identity Manager 인스턴스 동작을 제어할 수 있습니다.


모드

모드 탭은 다음 옵션을 제공합니다.

IDM 객체 필터

IDM 객체 필터 탭은 다음과 옵션을 제공합니다.

Java 필터

Java 필터 탭을 선택하여 다음을 수행할 수 있습니다.

Java 필터는 메소드 패턴으로 제공되며, 정규 메소드 이름에 따라 포함 또는 제외되는 패턴으로 표시됩니다. 여기서 정규 메소드 이름은 다음과 같습니다.

fully-qualified-class-name.method-name(parameter-type-1, parameter-type-2, ...)


주 –

구성자의 경우 method-name<init>입니다.


다음은 몇 가지 예입니다.


주 –

필터가 사용자 정의 클래스와 Identity Manager 클래스에만 적용되기 때문에 현재 마지막 두 예제는 동일합니다.


필요한 경우 build.xml의 다음 행을 적절하게 수정하여 다른 jar을 지정할 수 있습니다. 예를 들면 다음과 같습니다.


<instrument todir="${lighthouse-dir-profiler}/WEB-INF" 
verbose="${instrumentor.verbose}" includeMethods="${profiler.includes}" 
excludeMethods="${profiler.excludes}">
           <fileset dir="${lighthouse-dir}/WEB-INF">
               <include name="lib/idm*.jar"/>
               <include name="classes/**/*.class"/>
           </fileset>
</instrument>

기본적으로 구성에는 모든 사용자 정의 클래스와 대부분의 Identity Manager 클래스가 포함되어 있습니다. 많은 Identity Manager 클래스들이 활성화되면 프로필러를 차단하기 때문에 강제로 제외됩니다.

예를 들어, 작업 흐름, 양식 및 XPRESS 엔진의 클래스가 제외되거나, 프로필러가 Java 및 Identity Manager 객체를 프로필링할 때 알 수 없는 스냅샷을 생성합니다.

Java 필터는 IDM 객체 필터보다 훨씬 세밀한 필터링을 제공합니다. Java 계측에서는 실행 시간에 많은 오버헤드를 추가하므로, 프로필링 결과가 완전히 왜곡될 수 있습니다. Identity Manager 객체는 컴파일되는 것이 아니라 해석되는 것이므로 계측 오버헤드를 무시해도 좋습니다. 예를 들어, 작업 흐름 A를 제외하고 작업 흐름 B 등을 포함하는 근본적인 이유는 없습니다.


주 –

프로필러가 실행 중인 동안에는 Java 필터를 수정할 수 없습니다. Java 필터를 변경하려면 프로필러를 중지해야 합니다.


기타

기타 탭은 다음 옵션을 제공합니다.

IDM 프로필러 보기 작업

IDM 프로필러 보기는 다음 영역으로 구성되어 있습니다.

현재 프로젝트 영역

현재 프로젝트 영역은 모든 현재 프로젝트를 나열하는 드롭다운 메뉴로 구성되어 있습니다. 이 메뉴를 사용하여 프로필링할 프로젝트를 선택합니다.

제어 영역

제어 영역에는 다음 표에 설명된 네 가지 아이콘이 있습니다.

아이콘 

이름 

목적 

Identity Manager 프로필러 시작 아이콘을 보여 주는 그림

Identity Manager 프로필러 시작 

프로필러를 시작하고 프로필러 옵션 대화 상자를 엽니다. 

Identity Manager 프로필러 중지 아이콘을 보여 주는 그림

Identity Manager 프로필러 중지 

프로필러를 중지합니다. 

수집된 결과 재설정 아이콘을 보여 주는 그림

수집된 결과 재설정 

이 지점에서 수집한 모든 프로필 결과를 재설정합니다. 

프로필링 수정 아이콘을 보여 주는 그림

프로필링 수정 

설정을 변경하여 현재 프로필 결과를 수정할 수 있도록 프로필러 옵션 대화 상자를 다시 엽니다. 

상태 영역

상태 영역에서는 호스트에 연결되어 있는지 여부를 보고하고, 프로필러가 시작, 실행, 중지할 때 상태 정보를 제공합니다.

프로필링 결과 영역

프로필링 결과 영역에는 다음 표에 설명된 두 가지 아이콘이 있습니다.

아이콘 

이름 

목적 

Identity Manager 프로필러 시작 아이콘을 보여 주는 그림

Identity Manager 프로필러 시작 

프로필러를 시작하고 프로필러 옵션 대화 상자를 엽니다. 

수집된 결과 재설정 아이콘을 보여 주는 그림

수집된 결과 재설정 

이 지점에서 수집한 모든 프로필 결과를 재설정합니다. 

저장된 스냅샷 영역

저장된 스냅샷 영역에서는 모든 저장된 스냅샷 목록을 제공합니다.


주 –

스냅샷 저장 지침은 스냅샷 저장에 나와 있습니다.


또한 다음 버튼을 사용하여 이러한 스냅샷을 관리할 수 있습니다.

스냅샷 보기 작업

스냅샷을 열면 Identity Manager IDE 오른쪽 상단의 스냅샷 보기 창에 결과가 표시됩니다.

스냅샷에서는 다음 절에 설명된 여러 데이터 보기를 제공합니다.

호출 트리 보기

호출 트리 보기는 시스템 전체의 호출 타이밍 및 호출 횟수를 보여 주는 트리 테이블로 구성됩니다.

이 트리 테이블에는 다음과 같은 세 개의 열이 포함되어 있습니다.

핫스폿 보기

핫스폿 보기는 상위에 상관없이 총 호출 타이밍을 보여 주는 일반 노드 목록을 제공합니다.

이 보기에는 다음 열이 포함되어 있습니다.

역 추적 보기

역 추적 보기에서는 각 노드를 호출한 모든 호출 체인을 보여 주는 역 호출 스택을 제공합니다.

이러한 통계를 사용하여 "이 노드에서 이 특정 호출 체인을 제거하면 시간이 얼마나 절약됩니까?"라는 질문에 응답할 수 있습니다.

노드(루트 노드)를 마우스 오른쪽 버튼으로 누르고 팝업 메뉴에서 역 추적 표시를 선택하여 다른 스냅샷 보기에서 역 추적 보기에 액세스할 수 있습니다.


주 –

역 추적 보기에서는 시간 및 호출 데이터 값이 다른 의미를 갖습니다.


호출 수신자 보기

호출 수신자 보기는 상위 체인에 상관없이 노드(루트 노드)의 총 호출 트리를 제공합니다.

이 통계는 마스터 호출 트리 전체의 여러 위치에서 호출되는 문제 영역이 있어 해당 노드에 대한 전체 프로필을 보려는 경우에 유용합니다.

노드(루트 노드)를 마우스 오른쪽 버튼으로 누르고 팝업 메뉴에서 호출 수신자 표시를 선택하여 다른 스냅샷 보기에서 호출 수신자 보기에 액세스할 수 있습니다.


주 –

호출 수신자 보기에 사용된 시간 및 호출 데이터 값은 호출 트리 보기에 사용된 값과 동일한 의미를 갖습니다.


팝업 메뉴 옵션 사용

호출 트리 보기 또는 핫스폿 보기에서 노드를 마우스 오른쪽 버튼으로 누르면 다음 표에 설명된 옵션이 있는 팝업 메뉴가 표시됩니다.

메뉴 옵션 

설명 

소스로 이동 

Java 메소드, 작업 흐름, 양식, 규칙 또는 XPRESS에 해당하는 노드에 대한 XML 소스를 보려면 이 옵션을 선택합니다. 이 보기에 대한 자세한 내용은 프로필러에서 소스를 찾아 관리하는 방법을 참조하십시오.

역 추적 표시 

역 추적 보기에 액세스하려면 이 옵션을 선택합니다. 이 보기에 대한 자세한 내용은 역 추적 보기를 참조하십시오.

호출 수신자 표시 

호출 수신자 보기에 액세스하려면 이 옵션을 선택합니다. 이 보기에 대한 자세한 내용은 호출 수신자 보기를 참조하십시오.

핫스폿에서 찾기 

핫스폿 보기에서 노드를 찾으려면 이 옵션을 선택합니다. 이 보기에 대한 자세한 내용은 핫스폿 보기를 참조하십시오.

옵션 나열 > 정렬 -> 

이 옵션을 다음 중 하나로 선택합니다. 

  • 없음

  • 호출 트리

  • 시간

  • 호출

  • 오름차순

  • 내림차순

옵션 나열 -> 표시되는 열 변경 

호출 트리 또는 핫스폿 목록에 표시되는 열을 변경하려면 이 옵션을 선택합니다. 

표시되는 열 변경 대화 상자가 표시되면 다음 옵션 중 하나 이상을 선택할 수 있습니다. 

  • 호출 트리: 호출 트리

  • 호출: 호출

  • 시간: 시간

스냅샷 검색

검색 아이콘검색 아이콘을 보여 주는 그림 (스냅샷 보기 창의 맨 위에 있음)을 사용하여 호출 트리 보기 또는 핫스폿 트리에서 이름별로 노드를 검색할 수 있습니다.

또는 호출 트리 보기 또는 핫스폿 보기에서 노드를 마우스 오른쪽 버튼으로 누르고 팝업 메뉴에서 호출 트리에서 찾기 또는 핫스폿에서 찾기를 선택하여 노드를 검색합니다.

스냅샷 저장

프로필러는 스냅샷 저장을 위한 여러 옵션을 제공합니다. 옵션에 대한 설명은 다음 표를 참조하십시오.

아이콘 

이름 

목적 

Identity Manager 프로필러 시작 아이콘을 보여 주는 그림

프로젝트에 스냅샷 저장 아이콘(스냅샷 보기 창의 맨 위에 있음) 

프로젝트의 nbproject/private/idm-profiler 디렉토리에 스냅샷을 저장합니다. 프로젝트에 저장된 스냅샷은 프로필러 보기의 저장된 스냅샷 섹션에 나열됩니다.

Identity Manager 프로필러 중지 아이콘을 보여 주는 그림

외부적으로 스냅샷 저장 아이콘(스냅샷 보기 창의 맨 위에 있음) 

외부의 임의의 위치에 스냅샷을 저장합니다. 

수집된 결과 재설정 아이콘을 보여 주는 그림

다른 이름으로 저장 버튼(저장된 스냅샷 영역에 있음) 

외부의 임의의 위치에 스냅샷을 저장합니다. 

자습서: 성능 문제 해결

Identity Manager에서는 프로필러를 사용하여 양식, Java 규칙, 작업 흐름 및 XPRESS 문제를 해결하는 방법을 알려주는 자습서(profiler-tutorial.zip)를 제공합니다.

다음 단계를 통해 전체 자습서를 확인할 수 있습니다.

Procedure1단계: Identity Manager 프로젝트 만들기

  1. 파일 -> 새 프로젝트를 선택합니다.

  2. 새 프로젝트 마법사가 표시되면 다음 항목을 지정한 후 다음을 누릅니다.

    1. 범주 목록에서 웹을 선택하여 만들 프로젝트 유형을 나타냅니다.

    2. 프로젝트 목록에서 Identity Manager 프로젝트를 선택합니다.


      주 –

      완벽한 기능을 갖춘 개발 환경을 위해 일반 Identity Manager 프로젝트를 만들어야 합니다. Identity Manager 프로젝트(원격) 옵션을 선택하지 마십시오.


  3. 이름 및 위치 패널에서 다음 필드를 입력한 후 다음을 누릅니다.

    • 프로젝트 이름: Idm80을 프로젝트 이름으로 입력합니다.

    • 프로젝트 위치: 기본 위치를 사용하거나 다른 위치를 지정합니다.

    • 프로젝트 폴더: 기본 폴더를 사용하거나 다른 폴더를 지정합니다.

  4. Identity Manager WAR 파일 위치 패널이 표시되면 Identity Manager 8.1 war 파일 위치를 입력합니다. 일반적으로 이 파일의 압축을 풀면 동일한 디렉토리에 idm.war 파일이 만들어집니다.

  5. 저장소 설정 패널로 넘어가려면 다음을 누릅니다.

    이 패널에서 기본 설정을 변경할 필요 없이 마침을 누르면 됩니다. BUILD SUCCESSFUL 메시지가 Identity Manager IDE 출력 창에 표시되면 프로필러 자습서 파일의 압축을 풀 수 있습니다. 지침은 단계 2: 프로필러 자습서 압축 풀기를 참조하십시오.

Procedure단계 2: 프로필러 자습서 압축 풀기

  1. 프로젝트 루트에서 profiler-tutorial.zip 파일의 압축을 풉니다. 압축을 푼 파일은 다음과 같습니다.

    <project root>/custom/WEB-INF/config/ProfilerTutorial1.xml
    <project root>/custom/WEB-INF/config/ProfilerTutorial2.xml
    <project root>/src/org/example/ProfilerTutorialExample.java
    <project root>/PROFILER_TUTORIAL_README.txt
  2. 프로필러를 시작합니다. 단계 3: 프로필러 시작을 진행합니다.

Procedure단계 3: 프로필러 시작

  1. 시작하기 전에에 제공된 지침에 따라 서버 및 Netbeans JVM의 메모리를 늘립니다.

  2. 개요에 설명된 방법을 사용하여 프로필러를 시작합니다.

  3. 프로필러 옵션 대화 상자가 표시되면 프로필링 옵션을 지정할 수 있습니다.

  4. 계속해서 단계 4: 프로필러 옵션 설정을 진행합니다.


    주 –

    서로 다른 모든 프로필러 옵션에 대한 자세한 내용은 프로필러 옵션 지정을 참조하십시오.


Procedure단계 4: 프로필러 옵션 설정

이 자습서의 목적을 위해 다음 프로필러 옵션을 지정합니다.

  1. 모드 탭에서 양식, Java, 규칙, 작업 흐름 및 XPRESS 객체를 프로필링할 Java 및 IDM 객체를 선택합니다.

  2. Java 필터 탭을 선택합니다.

    다음 단계에 따라 사용자 정의 Java 클래스(이 경우 org.example.ProfilerTutorialExample)를 제외한 모든 Identity Manager Java 클래스를 비활성화합니다.

    1. 새로 만들기를 누릅니다. 그러면 필터 열의 아래쪽에 새로운 빈 필드가 표시됩니다.

    2. 새 필드에 com.waveset.*를 입력한 다음 제외 확인란을 선택합니다.

    3. 새로 만들기를 다시 누릅니다.

    4. 새 필드에 com.sun.idm.*를 입력한 다음 제외 확인란을 선택합니다.

  3. 확인을 눌러 프로필러를 실행합니다.


    주 –

    프로젝트에서 프로필러를 처음 실행하거나 프로젝트 정리 작업을 최근에 수행한 경우 프로필러가 완료되는 데 몇 분 정도 소요됩니다.


    프로필러가 처리를 마치면 로그인하라는 메시지가 표시됩니다.

  4. 비밀번호로 configurator를 입력하고 비밀번호 저장 확인란을 선택한 다음 확인을 눌러 계속합니다.

  5. Identity Manager 창이 표시되면 로그인합니다.


    주 –

    일반적으로 configurator로 다시 로그인하지 않고 Identity Manager에 다른 사용자로 로그인합니다. 프로필러에 configurator로 이미 로그인되어 있으면 Identity Manager 세션 풀에는 사용자당 하나의 항목만 허용됩니다. 여러 항목을 사용하면 끊어진 세션 풀이 표시되므로 세부적인 성능 문제에 대한 프로필링 결과가 왜곡될 수 있습니다.

    그러나 이 간단한 예제에서는 세션 풀이 중요하지 않으므로 configurator/configurator로 로그인할 수 있습니다.


  6. Identity Manager에서 서버 작업 -> 작업 실행을 선택한 다음 ProfilerTutorialWorkflow1을 누릅니다.

    자습서가 응답하는 데 몇 분 정도 걸릴 수 있습니다.

  7. 지금 스냅샷을 찍을 수 있지만, 여기서는 결과를 재설정하고, 프로필러를 실행하고, 다시 실행한 다음 스냅샷을 찍습니다.


    주 –

    모든 캐시가 준비되고 모든 JSP가 컴파일되도록 스냅샷을 찍기 전에 프로필러를 한 두 차례 실행하는 것이 좋습니다.

    프로필러를 여러 번 실행하면 실제 성능 문제에 집중할 수 있습니다. 이 방법의 유일한 예외는 캐시 자체를 채우는 데 문제가 있는 경우입니다.


    1. Identity Manager IDE에서 IDM 프로필러 보기로 돌아갑니다. 프로필링 결과 섹션 또는 제어 섹션에서 수집된 결과 재설정 아이콘을 눌러 지금까지 수집된 모든 결과를 재설정합니다.

    2. Identity Manager에서 서버 작업 -> 작업 실행을 다시 선택한 다음 ProfilerTutorialWorkflow1을 누릅니다.

    3. 프로세스 그림이 표시되면 Identity Manager IDE로 돌아간 다음 프로필링 결과 섹션에서 스냅샷 찍기를 누릅니다.

  8. Identity Manager IDE에서는 스냅샷을 다운로드하고 창의 오른쪽에 결과를 표시합니다.

    이 영역은 호출 트리 보기입니다. 호출 트리의 맨 위에는 시간 열에 나열되는 시간과 함께 /idm/task/taskLaunch.jsp가 표시되어야 합니다. 전체 요청을 수행하는 데 6초 이상 소요되었다고 시간에 표시됩니다.

  9. /idm/task/taskLaunch.jsp 노드를 확장하고 ProfilerTutorialWorkflow1에 6초가 소요되었는지 확인할 수 있습니다.

  10. ProfilerTutorialWorkflow1 노드를 확장합니다. activity2에 4초가 소요되고 activity1에 2초가 소요됩니다.

  11. activity2를 확장합니다.

    action1에 2초가 소요되고 action2에 2초가 소요됩니다.

  12. action1을 확장하고 <invoke>에도 2초가 소요되었음을 확인합니다.

  13. <invoke>를 두 번 눌러 ProfilerTutorialWorkflow1.xml을 열고 다음 줄을 강조 표시합니다.


    <invoke name=’example’ class=’org.example.ProfilerTutorialExample’/>

    ProfilerTutorialExample 메소드 호출에 2초가 소요된 것으로 표시되어야 합니다.


    주 –

    실제로 프로젝트의 소스 대신 스냅삿에서 캡처된 XML 소스를 찾습니다. 스냅샷이 완전히 자체 포함됩니다. 자세한 내용은 프로필러에서 소스를 찾아 관리하는 방법을 참조하십시오.


  14. CPU:<date><time> 탭을 선택하여 스냅샷으로 돌아갑니다.

  15. <invoke> 노드를 확장하고 프로필러에서 Java ProfilerTutorialExample.example() 메소드에 2초를 소요했음을 확인합니다.

  16. 메소드 이름을 두 번 눌러 ProfilerTutorialExample.java 소스를 열고 다음 줄을 강조 표시합니다.


    Thread.sleep(2000);

    이 줄에 문제가 있습니다. 이 메소드는 2초 스레드 일시 정지를 포함합니다.

  17. 호출 트리로 돌아가면 모든 2초 경로가 이 메소드로 연결됨을 확인할 수 있습니다. 총 6초인 세 개의 경로가 표시되어야 합니다.

  18. 호출 트리 영역의 아래쪽에 있는 핫스폿 탭을 선택하여 핫스폿 보기를 엽니다. ProfilerTutorialExample.example()의 총 자체 시간은 6초입니다.

    핫스폿에 대한 자세한 내용은 스냅샷 보기 작업을 참조하십시오.

  19. ProfilerTutorialExample.example()을 마우스 오른쪽 버튼으로 누르고 팝업 메뉴에서 역 추적 표시를 선택합니다.

    새 역 추적 탭이 영역의 아래쪽에 표시됩니다.

  20. 역 추적 탭에서 ProfilerTutorialExample.example() 노드를 확장하여 이 메소드가 세 개의 위치에서 호출되었고 메소드가 각 위치에서 호출될 때 2초가 소요되었는지 확인합니다.

    역 추적에 대한 자세한 내용은 스냅샷 보기 작업을 참조하십시오.

  21. 프로젝트에 스냅샷 저장 아이콘을 눌러 스냅샷을 저장한 다음 닫습니다.

    IDM 프로필러 탭에서 저장된 스냅샷 섹션을 선택하면 스냅샷이 표시됩니다. 아래로 스크롤해야 할 수 있습니다.

  22. 저장된 스냅샷을 선택한 다음 열기를 눌러 다시 엽니다.


    주 –

    다른 이름으로 저장 버튼을 사용하여 스냅샷을 외부적으로 저장하고, 로드 버튼을 사용하여 프로젝트 외부에서 스냅샷을 로드할 수 있습니다.


  23. 스냅샷을 다시 닫습니다.

Procedure단계 5: ManualAction 작업 흐름 프로필링

이 자습서의 다음 부분에서는 작업 흐름 ManualAction을 프로필링하는 방법을 설명합니다.

  1. Identity Manager에서 서버 작업 -> 작업 실행을 선택한 다음 ProfilerTutorialWorkflow2를 누릅니다.

    잠시 후 빈 양식이 표시됩니다.

  2. 저장을 누르면 프로세스 그림이 표시됩니다.

  3. 서버 작업 -> 작업 실행을 다시 선택합니다.

  4. Identity Manager IDE IDM 프로필러 보기로 돌아간 다음 프로필링 결과 섹션에서 수집된 결과 재설정 아이콘을 누릅니다.

  5. 이제 Identity Manager에서 ProfilerTutorialWorkflow2를 누릅니다.

  6. 빈 양식이 다시 표시되면 저장을 누릅니다.

  7. IDM 프로필러 보기에서 스냅샷 찍기를 누릅니다.

    몇 초 후 스냅샷이 호출 트리 영역에 표시됩니다. /idm/task/workItemEdit.jsp에 6초 이상 소요되어야 합니다. 이 결과는 작업 흐름의 수동 작업에 해당합니다.

  8. /idm/task/workItemEdit.jsp 노드를 확장하고 ManualAction 양식에서 모든 Derivation을 실행하는 데 총 6초가 소요되었는지 확인합니다.

  9. Derivation, displayNameForm, variables.dummy<block> 노드를 확장합니다.

    <block>에 6초가 소요되었음을 확인할 수 있습니다. 프로필러가 ProfilerTutorialExample.example(). 메소드를 세 번 호출하는 데 2초씩 소요된 것입니다.

  10. <block>을 두 번 눌러 소스를 볼 수 있습니다.