프로파일링 및 로깅 도구 - 릴리즈 정보

프로파일링 및 로깅 도구 구성요소 릴리즈 정보

1.0 제한사항
   1.1 프로파일링 및 로깅 Perspective에서 콘솔 보기를 여는 방법
   1.2 Probekit: Probekit 소스 파일에 대해 UTF-8 인코딩을 선택할 것으로 고려함
   1.3 결함 분석: OS/400 iSeries(TM)에서는 결함 분석을 사용할 수 없음
   1.4 응용프로그램 프로파일링 중 참고사항
   1.5 결함 분석: "파일로 프로파일링 데이터 전송"에서의 예기치 못한 작동
   1.6 결함 분석: IBM(C) OS/390® (SVC) 힙 덤프에 대한 오브젝트 참조 그래프를 열 때 많은 시간이 걸림
   1.7 결함 분석: Hyades 최적화 힙 덤프 파일의 위치 및 관리
   1.8 결함 분석: 결함 분석 로그 파일
   1.9 결함 분석: 아주 큰 힙을 분석하기 위한 RADLEAKJVMSIZE 설정
   1.10 스레드 분석: IBM JRE 1.4.2에서 교착 상태 발견이 작동하지 않음
2.0 알려진 문제점
   2.1 Probekit: Probekit 소스 파일 이름에는 ASCII가 아닌 문자를 사용할 수 없음
   2.2 Probekit: Probekit 소스 파일 빌드
   2.3 Probekit: Probekit 대상 스펙에서의 ASCII가 아닌 문자
   2.4 메소드 및 행 레벨 적용 범위: ASCII가 아닌 문자에 대한 '메소드에서 비우기'
   2.5 메소드 및 행 레벨 적용 범위: EXCLUDE 필터는 와일드 카드로 시작할 수 없음
   2.6 프로파일링에 libstdc++-libc6.2-2.so.3 패치가 필요함
   2.7 결함 분석: J9 JVM에서 작성된 IBM 힙 덤프는 지원되지 않음
   2.8 결함 분석: 힙 파일을 가져올 때 새 프로젝트나 모니터를 지정해야 함
   2.9 행 레벨 적용 범위, Probekit: 이미 로드된 클래스에서 데이터를 수집하려면 프로젝트를 다시 시작해야 함
   2.10 결함 분석: 결함 분석 중 WAS에 대한 힙 덤프 위치
   2.11 2바이트 문자는 콘솔 보기에 표시되지 않음
   2.12 결함 분석: 분석 로케일은 데이터 콜렉션 로케일과 같아야 함
   2.13 스레드 분석: IBM JRE 1.4.1 또는 이전 버전에서는 잠금 스레드 소유자가 누락됨
   2.14 Solaris에서 원격 프로파일링을 수행할 경우 Sun의 JVM이 손상될 수 있음

프로파일링 및 로깅 도구 구성요소 릴리즈 정보

1.0 제한사항

1.1 프로파일링 및 로깅 Perspective에서 콘솔 보기를 여는 방법

응용프로그램의 프로파일을 작성할 경우, 기본적으로 프로파일링 및 로깅 Perspective에 콘솔 보기가 표시되지 않습니다.

프로파일링 및 로깅 Perspective에서 콘솔 보기를 열려면 창->보기 표시->콘솔을 선택하십시오.

stdout이 콘솔에 표시되도록 하려면 창->환경 설정->실행/디버그->콘솔을 누르고 프로그램이 표준 출력에 작성할 때 표시를 선택하십시오.

1.2 Probekit: Probekit 소스 파일에 대해 UTF-8 인코딩을 선택할 것으로 고려함

새 Probekit 소스 파일을 작성할 때, 마법사에서 사용할 XML 인코딩을 선택할 수 있습니다. 기본 선택사항은 ASCII입니다. 프로브 소스 파일에서(예를 들어, 레이블 또는 설명 필드나, 단편의 Java 코드에서) ASCII가 아닌 문자를 사용하려면 ASCII가 아닌 UTF-8 인코딩을 선택해야 합니다.

기존 프로브 소스 파일의 인코딩을 변경하려면, 파일을 마우스 오른쪽 단추로 누르고 연결 프로그램 -> 문서 편집기를 선택하십시오. XML 헤더에서 인코딩을 "UTF-8"로 변경하고 파일을 닫으십시오. 다시 마우스 오른쪽 단추를 누르고 연결 프로그램 -> 프로브 편집기를 선택하여 컨텐츠를 편집하십시오.

1.3 결함 분석: OS/400 iSeries(TM)에서는 결함 분석을 사용할 수 없음

AS400® iSeries(TM)에서 실행되는 사용자 프로그램에 대해 결함 분석을 사용할 수 없습니다. 이 플랫폼에서 생성된 Hyades 최적화 힙 덤프는 완전하지 않으며 다른 형식으로 힙 덤프를 생성할 수 없습니다.

1.4 응용프로그램 프로파일링 중 참고사항

프로파일링 도구의 성능은 수집되는 데이터 양과 이 데이터가 Workbench로 전송되는 속도에 직접 관련됩니다. 수집하는 양이 늘어날수록, 분석 수행에 소요되는 시간과 여러 타스크를 수행하는 데 사용되는 메모리의 성능은 저하됩니다. 다음은 사용자가 프로파일링 성능을 향상시킬 수 있는 몇 가지 방법입니다.

1.5 결함 분석: "파일로 프로파일링 데이터 전송"에서의 예기치 못한 작동

2진 Hyades 최적화 힙 덤프를 수집할 때, "파일로 프로파일링 데이터 전송"을 선택하여 trcxml 파일로 데이터를 전송할 경우, 다음에 유의하십시오.

저장된 힙 파일에 액세스하려면 전개 호스트에서 Agent Controller를 실행하고 있어야 합니다. trcxml 파일에 대해 가져오기->파일 프로파일링을 처음 실행할 경우, 결함 분석 및 오브젝트 참조 그래프 보기가 예상대로 작동합니다.

그러나 두 번째로 가져오기->파일 프로파일링을 실행하면 가져오기는 작동하지만 결함 분석을 실행하거나 오브젝트 참조 그래프를 보려고 하면 실패합니다. 이는 필요한 힙 파일을 더 이상 전개 호스트에서 사용할 수 없기 때문입니다.

이 문제를 해결하려면, 처음 trcxml 파일을 가져온 프로젝트에서 힙 파일에 액세스하십시오. 힙 파일은 프로젝트 디렉토리의 "leakanalysisheapdir" 디렉토리에 있습니다.

1.6 결함 분석: IBM(C) OS/390(SVC) 힙 덤프에 대한 오브젝트 참조 그래프를 열 때 많은 시간이 걸림

IBM(C)OS/390(SVC) 힙 덤프는 아주 큽니다. 오브젝트 참조 그래프 보기에서 힙 덤프를 보기 위해 큰 힙 덤프를 펼칠 경우 많은 시간이 걸릴 수 있습니다. 결국, 작동이 중지된 것처럼 보일 수 있습니다. 진행 모니터가 100%를 표시할 경우에도 Workbench는 힙 덤프를 계속 펼치고 있을 수 있습니다.

1.7 결함 분석: Hyades 최적화 힙 덤프 파일의 위치 및 관리

"힙 덤프 캡처" 조치를 수행하면 대상 응용프로그램이 전개되는 호스트에서 Hyades 최적화 힙 덤프가 생성됩니다. 힙 덤프 대상 디렉토리는 Agent Controller의 serviceconfig.xml 구성 파일에서 LOCAL_AGENT_TEMP_DIR 설정에 의해 제어됩니다. 이 파일을 찾아서 수정하는 방법에 대한 정보는 "런타임 문제점 발견 및 분석"에서 "Agent Controller 관리" 도움말 항목을 참조하십시오.

"다음 단계에서 힙 덤프 펼치기에 실패함: ...파일 읽기" 또는 "다음 단계에서 결함 분석에 실패함: 힙 오브젝트 참조 그래프 작성"의 오류 메시지가 표시되면 Agent Controller가 전개 호스트에서 실행 중인지 확인한 후 명령을 재시도하십시오. Agent Controller는 전개 호스트에서 Workbench 프로젝트 디렉토리로의 파일 복사에 도움이 됩니다.

1.8 결함 분석: 결함 분석 로그 파일

결함 분석 중 문제가 발생하면 결함 분석 로그 파일을 보는 것이 유용할 수 있습니다.

결함 분석 중 진단 정보는 LeakAnalysis.log 파일에 기록됩니다. LeakAnalysis.log에는 결함 분석 중 수행되는 다양한 단계의 출력이 포함되며 실행한 결함 분석의 성공 또는 실패 여부도 표시합니다.

LeakAnalysis.log는 프로파일 데이터와 연관되는 프로파일링 프로젝트에 기록됩니다. 예를 들어, Windows에서는 <my_workspace>\ProfileProject\LeakAnalysis.log에 기록됩니다.

추가 정보는 RADLEAKREGIONDUMP 시스템 특성을 사용하여 로그 파일에 기록할 수 있습니다. rationalsdp.ini에 다음 옵션을 추가하십시오.

VMArgs=-DRADLEAKREGIONDUMP=1

rationalsdp.ini 파일은 Rational Software Architect 설치 디렉토리에 있습니다.

1.9 결함 분석: 아주 큰 힙을 분석하기 위한 RADLEAKJVMSIZE 설정

결함 분석이 LeakAnalysis.log 파일에서 'JVMDUMP006I 덤프 이벤트 처리가 "미발견" 상태임. 세부사항 "java/lang/OutOfMemoryError"' 메시지로 실패할 경우, 결함 분석 프로세스의 힙 크기를 늘려야 합니다.

이렇게 하려면 Rational Software Architect 시스템 속성 RADLEAKJVMSIZE를 설정하십시오. 이 속성은 결함 분석 중 사용 가능한 JVM 힙 크기를 제어합니다.

RADLEAKJVMSIZE를 설정하려면 다음 옵션을 rationalsdp.ini 파일에 추가하십시오.

VMArgs=-DRADLEAKJVMSIZE=value

여기서, value는 새 힙의 최대 크기입니다(예: 1024M). 기본값은 512M입니다. 반드시 힙 크기를 표시하는 단위(M 또는 G)를 지정해야 합니다.

rationalsdp.ini 파일은 Rational Software Architect 설치 디렉토리에 있습니다.

1.10 스레드 분석: IBM JRE 1.4.2에서 교착 상태 발견이 작동하지 않음

스레드 분석 프로파일링 기능과 함께 IBM 클래식 JVM을 사용할 경우, 프로파일링 및 로깅 Perspective의 스레드 보기에서 교착 상태에 빠진 모든 스레드에 대해 '잠금 대기 중' 상태를 표시하지 않습니다. 이는 수집된 데이터에서 누락된 정보가 있기 때문입니다. 임시 해결책: 프로파일 대화 상자의 인수 탭에서 VM 인수 필드에 -Xj9를 추가하여 IBM J9 JVM을 사용하십시오.

2.0 알려진 문제점

2.1 Probekit: Probekit 소스 파일 이름에는 ASCII가 아닌 문자를 사용할 수 없음

이름에 ASCII가 아닌 문자가 있는 Probekit 소스 파일은 올바르게 처리되지 않습니다. Probekit 소스 파일 이름에는 ASCII 문자만 사용하십시오.

2.2 Probekit: Probekit 소스 파일 빌드

*.probe 파일의 경우 컨텍스트 메뉴에 표시되는 Probekit->컴파일 조치는 사용하지 마십시오. 대신, *.probe 파일이 있는 프로젝트를 Probekit 프로젝트로 변환하여 표준 빌드 메커니즘을 사용하십시오. (Java 프로젝트를 Probekit 프로젝트로 변환하려면 파일->신규->기타를 사용하고 프로파일링 및 로깅 섹션에서 Java 프로젝트를 Probekit 프로젝트로 변환을 선택하십시오.)

2.3 Probekit: Probekit 대상 스펙에서의 ASCII가 아닌 문자

Probekit "대상" 스펙에 대한 패턴에 ASCII가 아닌 문자를 사용하지 마십시오. 대상 패턴에 ASCII가 아닌 문자가 있는 프로브는 올바르게 처리되지 않습니다.

2.4 메소드 및 행 레벨 적용 범위: ASCII가 아닌 문자에 대한 '메소드에서 비우기'

"...경우 적용 범위 데이터 비우기"에 대해 메소드 패턴을 추가할 때 ASCII가 아닌 문자는 사용하지 마십시오.

패키지, 클래스 또는 메소드 패턴 추가 대화 상자의 메소드 필드에서 ASCII가 아닌 문자를 입력할 경우, 유효하지 않은 입력 오류가 표시되고 대화 상자를 처리할 수 없게 됩니다.

임시 해결책: 패턴에서 ASCII가 아닌 문자 대신 와일드 카드(별표) 문자를 사용하십시오.

2.5 메소드 및 행 레벨 적용 범위: EXCLUDE 필터는 와일드 카드로 시작할 수 없음

와일드 카드 문자(별표)로 시작하는 EXCLUDE 필터(예: "*foo")를 사용하면 적용 범위 통계, 적용 범위 탐색기 및 주석을 표시한 소스 보기에 데이터가 표시되지 않습니다. 임시 해결책: 이러한 EXCLUDE 필터는 사용하지 마십시오.

2.6 프로파일링에 libstdc++-libc6.2-2.so.3 패치가 필요함

프로파일링 데이터를 수집하려면, 먼저 데이터를 수집하려는 시스템에서 Agent Controller를 실행해야 합니다. RedHat Linux 시스템에서는 Agent Controller에 libstdc++.so 패치인 libstdc++-libc6.2-2.so.3이 필요합니다.

2.7 결함 분석: J9 JVM에서 작성된 IBM 힙 덤프는 지원되지 않음

IBM J9 JVM에서 실행되는 사용자 프로그램에 대해 결함 분석 성능을 사용할 수 없습니다.

IBM J9 JVM은 사용자가 IBM_HEAPDUMP 환경 변수를 설정하고 실행 중인 Java 프로세스로 "kill -3" 신호를 전송할 때 heapdump.20041012.093936.2192.dmp와 유사한 이름의 힙 파일을 작성합니다. 이 .dmp 파일은 j9extract 및 jdmpview를 실행하여 사후 처리 및 IBM 힙 덤프를 작성하도록 해야 합니다.

이 힙 덤프의 형식은 클래식 IBM jvm에서 생성되는 힙 덤프 형식과 같지 않습니다.

2.8 결함 분석: 힙 파일을 가져올 때 새 프로젝트나 모니터를 지정해야 함

동일 모니터 이름을 가지고 있는 여러 개의 힙 덤프 세트를 기존 프로젝트로 가져와 나중에 프로젝트를 저장하거나 Workbench를 종료하면, 데이터가 유실될 수 있습니다.

이를 예방하려면, 가져온 힙 세트마다 고유한 프로젝트/모니터 조합을 지정하십시오.

2.9 행 레벨 적용 범위, Probekit: 이미 로드된 클래스에서 데이터를 수집하려면 프로젝트를 다시 시작해야 함

WAS 서버를 시작하여 접속할 경우, Probekit 및 행 레벨 적용 범위 프로파일링 유형은 이미 대상 JVM에 로드된 클래스에 대해서는 데이터를 수집하지 않습니다. 임시 해결책: 이러한 클래스에서 데이터를 수집하려면 이 클래스를 포함하는 프로젝트를 다시 시작하십시오.

2.10 결함 분석: 결함 분석 중 WAS에 대한 힙 덤프 위치

Linux에서 결함 분석에 대해 WAS 응용프로그램을 프로파일링하면, 다음 디렉토리에 optheap 파일이 위치합니다.

WAS 6.0의 경우, Rational Software Architect 설치 디렉토리의 runtimes/base_v6/profiles/default에 위치합니다.

WAS 5.x의 경우, Rational Software Architect 설치 디렉토리에 위치합니다.

2.11 2바이트 문자는 콘솔 보기에 표시되지 않음

프로파일링 중, 모든 2바이트 문자는 콘솔 보기에서 ????로 표시됩니다.

2.12 결함 분석: 분석 로케일은 데이터 콜렉션 로케일과 같아야 함

Workbench 호스트, 원격 전개 호스트 및 대상 응용프로그램에서의 로케일 설정은 모두 Hyades 최적화 힙 덤프를 수집할 때와 같아야 합니다.

2.13 스레드 분석: IBM JRE 1.4.1 또는 이전 버전에서는 잠금 스레드 소유자가 누락됨

IBM JVM 1.4.1 이전 버전으로 스레드 분석에 대해 프로파일을 작성할 경우, 프로파일링 및 로깅 Perspective의 스레드 보기가 잠금 모니터의 스레드 소유자를 표시하지 않습니다. 이 데이터가 수집되지 않기 때문입니다. 임시 해결책: IBM JRE 1.4.2로 업그레이드하십시오.

2.14 Solaris에서 원격 프로파일링을 수행할 경우 Sun의 JVM이 손상될 수 있음

Solaris에서 원격으로 프로파일을 작성할 경우, Sun 1.4.x JRE의 결함으로 일부 기능 조합에 대해(특히, 메모리 프로파일링 또는 스레드 분석이 사용되는 경우) 프로파일링이 금지됩니다. Sun 사이트 http://developer.java.sun.com/developer/bugParade/bugs/4614956.html에 이 문제에 대한 설명이 있습니다. 임시 해결책: Sun JRE 1.4.2_06 이상을 사용하십시오.

기본 Readme 파일로 돌아가기