이 글은 넷빈즈TM DTrace GUI 플러그인을 다운로드, 설치 및 사용하는 방법에 대해 설명합니다. 넷빈즈 DTrace 플러그인은 솔라리스 DTrace 를 위한 그래픽 유저 인터페이스이고 썬 스튜디오 IDE, 넷빈즈 6.0, 넷빈즈 6.1, 그리고 넷빈즈 6.5에 설치 가능합니다.

D 스크립트를 GUI 환경에서 실행할 수 있고 쉘스크립트에 내장되어 있는 상태에서도 실행이 가능합니다. 사실 DTrace GUI 플러그인은 DTraceToolkit 에 존재하는 모든 D 스크립트를 실행할 수 있습니다. DTraceToolkit 은 오픈솔라리스 DTrace 커뮤니티에 의해 만들어진 주석처리가 아주 잘된 스크립트들의 집합입니다.

여러분은 DTrace 의 결과물을 Chime 을 이용해서 시각화할 수 있습니다. Chime 은 DTrace aggregation 을 시각화 하는 그래픽 툴입니다. 특히 데이타를 시간에 따라 볼 수 있게 되면서 시스템에 가시성 측면에서 부족한 부분을 메꿔 줍니다. Chime 는 넷빈즈 DTrace GUI 플러그인과 완벽히 통합됩니다.

Chime 의 중요한 기능은 재컴파일 없이 새로운 디스플레이들 을 추가 할수 있다는 것입니다.디스플레이는 XML 로 표현됩니다. 개체틀(placeholder) 구문은 DTrace 프로그램 값이 변경될 수 있도록 하는데, 이를 통해서 DTrace 에 대해 자세히 알지 못하더라도 Chime 사용자가 정의된 프로그램의 수정범위에 따라서 선택할 수 있도록 합니다. Chime 는 미리 준비된 디스플레이들의 툴킷으로서 동작하지만 DTrace 의 동적인 포텐셜을 이용하여 현재 디스플레이에서 기대되지 않았던 질문들에 대해서도 해답을 줄 수 있습니다.

넷빈즈 DTrace GUI 플러그인은 여러분이 손쉽게 확장하고 커스터마이즈 할 수 있는 구조로 되어 있습니다.

GUI 패키지는 두가지 컴포넌트로 구성되어 있습니다: 넷빈즈 플러그인(Chime 가 포함됨) 그리고 DTraceScripts 디렉토리.

  • 넷빈즈 DTrace GUI 플러그인은 썬 스튜디오 IDE, 넷빈즈 IDE 6.0, 넷빈즈 6.1 혹은 6.5 에 손쉽게 설치 될 수 있습니다.
  • DTraceScripts 디렉토리는 몇가지 서브디렉토리들을 포함하고 있습니다. 각각의 서브디렉토리는 다수의 D 스크립트들을 가지고 있습니다. D 스크립트는 DTrace 프로바이더에 기반하여 분류되어 있습니다. 여러분은 쉘 커맨드 라인에서 현존하는 디렉토리로 D 스크립트를 복사할 수 있고 또한 DTraceScripts 디렉토리 밑에 새롭게 서브디렉토리를 생성하여 복사하실 수 있습니다. 그리고 IDE 상에서 새로운 D 스크립트를 생성하고 저장하실 수 있습니다 .Chime 디스플레이들은 DTraceScripts 디렉토리에 포함되어 있습니다.


DTrace 는 무엇인가요?


DTrace 는 솔라리스 운영체제에 내장된 간편한 추적 설비로 개발자와 관리자가 프로덕션 환경의 시스템을 실시간으로 검사해 볼 수 있습니다.

DTrace 는 시스템 내부를 탐색하여 어떻게 동작하는지 그리고 수많은 소프트웨어 레이어상에서 어디서 퍼포먼스 문제가 발생하는지 혹은 이상 동작의 원인을 찾는데 사용될 수 있습니다.

DTrace 는 프로브(probe) 라고 불리는 여러분이 조사할 장소를 지정하여 운영체제 커널 및 유저 프로세스를 동적으로 수정해서 관심있는 데이타를 수집할 수 있도록 합니다.

프로브(probe) 는 DTrace 가 스택트레이스 저장, 타임스탬프, 혹은 함수의 매개변수 조사 같은 작업들을 조사할 수 있도록 바인딩 된 장소 혹은 작업을 의미 합니다.

프로브는 여러분의 솔라리스 시스템 전체에 퍼져 있는 프로그래밍 가능한 센서라고 생각하시면 됩니다. 만약 무슨일이 벌어지고 있는지 알고 싶으면 D 스크립트를 이용해서 적절한 센서를 프로그래밍해서 여러분이 관심있는 정보를 수집하면 됩니다. 그 다음에 각각의 프로브가 기동되면 DTrace 는 데이타를 수집하여 여러분에게 결과를 돌려 줍니다.

좀 더 자세한 정보는 Observability 를 참고하시기 바랍니다.


시스템 및 소프트웨어 요구사항 과 다운로드


시스템과 소프트웨어 요구사항은 다음과 같습니다:
  • DTrace GUI 플러그인은 오직 솔라리스TM 10 업데이트 4 이상 그리고 오픈솔라리스 TM 에서 지원됩니다.
  • 넷빈즈 DTrace GUI 플러그인은 썬 스튜디오 IDE 와 넷빈즈 IDE 두군데 모두 에서 실행 됩니다.
  • 넷빈즈 IDE 6.0, 넷빈즈 IDE 6.1, 혹은 넷빈즈 IDE 6.5 는 http://www.netbeans.org/ 웹 사이트에서 다운로드 가능합니다.
  • 썬 스튜디오 IDE 는 http://developers.sun.com/sunstudio/downloads/ 웹 사이트에서 다운로드 가능합니다.


작업규칙

  • 적절한 권한이 /etc/user_attr 파일에 설정되어 있어야 합니다. 예를 들어 다음이 DTrace 권한을 어떻게 지정하는지 보여주는 것입니다:
    nassern::::defaultpriv=basic,dtrace_user,dtrace_proc,dtrace_kernel,proc_owner

    완전히 시스템을 로그아웃 해야 합니다. 이러한 권한은 시스템을 완전히 로그아웃한 이후에 적용됩니다.

    유저 권한은 Using DTrace with Sun Studio Tools to Understand, Analyze, Debug, and Enhance Complex Applications 에 설명되어 있습니다.

  • 만약 여러분 자신이 Primary Administrator 혹은 root 권한을 가지고 있다면 DTraceScripts 디렉토리는 root 디렉토리에 설치될 것입니다. 아래의 라인을 살펴 보시기 바랍니다:
        nassern::::profiles=Primary Administrator;roles=root;defaultpriv=basic,dtrace_user,dtrace_proc,dtrace_kernel,proc_owner
  • 만약 이전의 DTrace GUI 플러그인에 의해 기설치된 디렉토리가 있다면 디렉토리의 이름을 바꾸거나 삭제해 하시기 바랍니다.
  • DTraceScripts 디렉토리는 DTrace GUI 플러그인 설치시에 자동으로 설치 됩니다.
  • 만약 IDE 를 여러분 자신이 실행할 것이라면 DTraceScripts 디렉토리는 여러분의 홈 ($HOME) 디렉토리에 설치될 것입니다. 만약 root 권한으로 실행한 다면 DTraceScripts 디렉토리는 root 디렉토리 안에 설치될 것입니다.


넷빈즈 GUI 플러그인 설치하기

  1. 넷빈즈 IDE 혹은 썬 스튜디오 IDE 를 시작시킵니다.
  2. Tools > Plugins 을 선택합니다.
  3. Plugins 창의 Available Plugins 탭에서 DTrace 에 체크박스를 클릭하여 체크표시를 추가 합니다. (만약 DTrace 가 플러그인 리스트에 나타나지 않는다면 Reload Catalog 를 클릭하고 다시 시도하시기 바랍니다.) Install 을 클릭합니다.
    Available
Plugins tab

  4. NetBeans IDE Installer 윈도우에서 Next 를 클릭합니다.

    NetBeans
IDE Installer
  5. License Agreement 를 수락하고 Intsall 을 클릭합니다.
  6. Finish 를 클릭합니다.
  7. Plugins 윈도우를 닫습니다.

넷빈즈 DTrace GUI 플러그인은 이제 넷빈즈 IDE 혹은 썬 스튜디오 IDE 에 설치 되었습니다.

여러분의 DTrace GUI 플러그인 설치는 완료 되었습니다. DTrace GUI 를 열고 Window > DTrace 를 선택합니다.

DTrace GUI 플러그인은 또한 http://plugins.netbeans.org 에서 다운로드 받으실 수 있습니다.


DTrace GUI 환경에서 D 스크립트 실행하는 법


DTrace GUI 에서 D 스크립트를 실행해 봅시다:

  1. 썬 스튜디오 IDE, 혹은 NetBeans IDE 를 시작시킵니다.
  2. Windows > DTrace 를 선택합니다. DTrace 탭이 IDE 의 왼쪽에 열립니다.
  3. Toolkit 탭을 선택합니다. DTrace 패널의 Category 리스트 박스에서 D 스크립트를 선택하고 Start 를 클릭합니다.
  4. 선택된 D 스크립트의 출력이 Output 윈도우에 나타 납니다. 몇몇 스크립트들은 여러분이 Stop(빨간 아이콘)을 누를때 까지 어떠한 출력도 내보내지 않습니다.
 
Toolkit view
  • 여러분은 동시에 여러개의 D 스크립트를 실행하실 수 있습니다.
  • Re-Run (녹색 아이콘) 을 클릭하면 동일한 Output 탭에 D 스크립트를 실행하실 수 있습니다.
  • Stop (빨간 아이콘) 은 Output 탭과 연관된 D 스크립트를 중지 시킵니다.
  • 스크립트의 출력을 저장하려면 Output 윈도우에서 우클릭을 하여 Save As 를 선택 합니다.

새로운 D 스크립트 보기, 수정, 및 생성하기


D 스크립트를 더블클릭하면 선택된 D 스크립트를 Editor 윈도우에서 보실 수있습니다. 혹은 선택된 D 스크립트를 우클릭하고 팝업 메뉴에서 View/Edit 옵션을 선택하실 수도 있습니다.

새로운 D 스크립트를 생성해 봅시다:

  1. New Script 를 클릭합니다.
  2. New Script 대화 박스에서 새로운 D 스크립트 이름을 입력합니다. 아무 내용 없는 D 스크립트가 선택된 카테고리(디렉토리)에 생성될 것입니다. 다음의 예제는 아무 내용 없는 hello D 스크립트를 Proc 디렉토리에 생성하는 방법입니다.

    Toolkit create view
  3. 새롭게 생성된 (텅빈) hello.d 스크립트가 Editor 윈도우에 나타납니다.
  4. Editor 윈도우에 새로운 D 스크립트에 코드를 입력하고 파일로 저장합니다. 다음의 예제는 hello.d 스크립트를 위한 DTrace 코드를 보여주고 있습니다.

    Toolkit hello.d view

DTrace GUI 에서 새롭게 생성된 hello.d 스크립트를 실행할 수 있습니다.

설정 패널은 각각의 선택된 D 스크립트에 지정할 수 있는 옵션 파라미터들의 목록을 보여 줍니다.

Pid 실행중인 프로세스의 process-id
Script Args D 스크립트 매개변수들
Executable 실행파일의 절대 경로
Executable Args 실행파일의 매개변수들

지속성이 있는 데이타를 생성하기 위해 유저가 지정한 파라미터 혹은 속성은 .xml 파일에 저장됩니다. 속성 파일은 D 스크립트 파일과 동일한 이름을 가지고 .xml 확장자를 가진 파일입니다. 다시 말해서 유저 데이타는 이후의 D 스크립트 실행 혹은 IDE 의 재실행시마다 보존 됩니다.

다음의 예제는 memleak.d 스크립트를 실행하는 방법을 보여주고 있습니다. memleak.d 스크립트는 메모리 leak 을 찾아 내는데에 사용됩니다. memleak.d 스크립트는 두개의 파라미터를 요구합니다: 실행파일의 절대 경로 이름과 D 스크립트 모듈 이름. 예제에서는 /home/nassern/test/umem/hello 이 절대 경로 이고 libc 가 모듈 이름 입니다.



Toolkit memory leak view


Chime 를 이용한 DTrace 출력 가시화


Chime 는 DTrace aggregation 을 가시화 해주는 그래픽 툴입니다. DTrace aggregation 을 바 차트 혹은 라인 차트를 이용해서 출력합니다.

기본적으로 Chime 는 12가지의 디스플레이 트레이스를 제공하고 리스트 메뉴에서 선택하실 수 있습니다. 디스플레이 트레이스들은 현재 실행되고 있는 솔라리스 커널 및 어플리케이션의 동작을 모니터링하는데에 사용할 수 있습니다. 유저들은 어플리케이션에서 정의된 함수들의 퍼포먼스를 가시화 하거나 인터럽트 통계, 시스템 콜, 커널 함수 호출, 그리도 디바이스 I/O 같은 커널 활동 도 가시화 할 수 있습니다.

Chime 의 가장 유용한 기능은 DTrace 가 어플리케이션과 시스템의 데이타를 모을때에 저장을 할 수 있다는 것입니다. 저장된 데이타는 이후에 다시 플레이해서 오류 혹은 퍼포먼스 저하의 원인을 찾는데에 사용될 수 있습니다. 저장된 데이타는 넷빈즈 DTrace GUI 플러그인 혹은 Chime 를 사용할 수 있는 다른 유저에게 보내져서 분석될 수 있습니다.

DTrace aggregation 을 가시화 하기 위한 단계는 다음과 같습니다:

  1. Chime 탭을 선택합니다.
  2. trace 중에서 디스플레이를 선택하고 Run 버튼을 누릅니다.

Chime view


새로운 Chime 디스플레이 추가하기


Chime 의 중요한 기능은 새로운 디스플레이를 재컴파일 없이 추가할 수 있는 것입니다. 새로운 디스플레이는 Chime Display Wizard 를 이용해서 손쉽게 생성할 수 있습니다. 간단히 Create a New Display 아이콘을 클릭하여 New Display Wizard 를 실행하면 됩니다. New Display Wizard 는 새로운 디스플레이 생성을 위한 단계를 여러분이 거치도록 할 것입니다.


Chime new display wizard


드릴다운 추가하기


Drilldown 은 여러분이 관심 잆는 값에 대한 해답을 줄 것입니다. 예를 들어 선택된 실행파일에 대하여 각 함수 마다의 시스템 콜 수준으로 쪼개어서 볼 수 있습니다. 여기 를 클릭해서 여러분의 새로운 디스플레이에 드릴다운을 추가하는 단계를 밟아 나가시기 바랍니다.

List Probes 윈도우


여러분들은 사용가능한 Provider, 모듈, 함수, 혹은 프로브(probe) 의 목록을 검색해 보실 수 있습니다. List Probes 윈도우를 열기 위해 DTrace Probes 아이콘을 클릭합니다.

List Probes Window
 

이 글의 영문 원본은
NetBeans DTrace GUI Plug-in
에서 보실 수 있습니다.

"개발자코너" 카테고리의 다른 글

2008/12/05 17:53 2008/12/05 17:53

TRACKBACK :: http://blog.sdnkorea.com/blog/trackback/685

  1. 시스템콜-으로 이어질 블로그링

    Tracked from blogring.org  삭제

    시스템콜-에 관한블로그를 요약한 것입니다.

    2008/12/20 03:53

댓글을 달아 주세요

[로그인][오픈아이디란?]

◀ Prev 1  ... 174 175 176 177 178 179 180 181 182  ... 806  Next ▶