프로브뷰

ProbeVue

ProbeVueAIX 버전 6.1에 도입된 IBM의 경량 동적 추적 환경 구현이다.[1]ProbeVue는 통계 분석을 제공할 뿐만 아니라 검사된 프로세스에서 데이터를 검색하기 위해 실행 중인 프로세스를 조사하는 기능을 제공한다.ProbeVue의 동적 특성은 단일 프로세스 또는 스레드에서 매우 구체적인 이벤트를 드릴로 드릴로 드릴로 드릴로 사용하는 능력을 유지하면서도 글로벌 시스템 성능 도구로 사용할 수 있도록 한다.

ProbeVue의 경량 설계와 추적[2] 툴로서 ProbeVue의 경량 설계에 대한 수정이 필요하지 않기 때문에 이전 추적 툴의 성능이 엄청나게 뛰어났을 생산 환경에서 사용하기에 적합하다.

설명

ProbeVue는 프로브할 수 있는 잠재적 이벤트인 일련의 프로브 포인트 사양을 제공한다.Vue 언어로 작성된 스크립트는 사용자가 시스템에서 해당 이벤트가 발생할 때 실행할 작업 블록이라고 불리는 코드 블록인 시도를 정의할 수 있도록 한다.실행 블록의 실행은 술어라고 불리는 프로브에 배치된 조건문을 사용하여 특정 이벤트로 제한될 수 있다.액션 블록의 코드는 제한된 내장 함수의 집합이 있는 C와 같은 구문을 따른다.

다음은 PID가 123456인 프로세스가 판독() 시스템 호출에 들어갈 때마다 정의되는 프로브의 예다.그러한 이벤트가 발생하면 이 스크립트는 출력 추적 버퍼에 메시지를 인쇄하기 위해 내장 인쇄f() 함수를 호출할 것이다.조치 블록의 첫 번째 줄은 C-스타일 코멘트이므로 ProbeVue 환경에서는 실행되지 않는다.

@@syscall:*:읽다:입장권  할 때 ( __pid == 123456) {    /* 다음은 코멘트:PID가 123456인 프로세스는 read(); */라고 한다.    활자화하다("readeput 시스템 호출 입력됨.\n"); } 

위의 샘플과 같은 프로브는 일반적으로 생산 시스템에 필요한 광범위한 테스트 없이 작성 및 실행될 수 있다.ProbeVue 환경은 이전 IBM 추적 도구에서 자주 볼 수 있는 잘못된 코드 또는 리소스 배고픈 추적으로부터 사용자를 보호한다.ProbeVue의 런타임 컴파일 기능은 데이터 수집을 위한 강력한 애드혹 환경을 제공한다.

프로브 포인트 사양

현재 IBM은 AIX 6.1에 대해 syscall, uft, interval, interval, trace 및 probevue probe(BEGIN 및 END)를 제공하고 있다.syscall 제공자는 사용 가능한 시스템 호출의 하위 집합에 대한 프로브 포인트를 정의한다.사용자 기능 추적(uft) 프로브는 C 또는 C++ 프로그램에 정의된 기능의 진입점에 대해 정의할 수 있다.syscall 및 uft 프로브 모두 기능 파라미터(입력 프로브의 경우) 또는 반환 값(syscall 출구 프로브 전용)에 액세스하기 전에 Vue 스크립트에 유효한 기능 프로토타입을 포함해야 한다.인터벌 탐침은 타이머에 불을 붙이며 100밀리초 간격으로 정의될 수 있다.추적 공급자는 ProbeVue가 기존의 추적 후크에 접근할 수 있도록 한다.마지막으로 BEGIN과 END라고 불리는 프로브뷰 탐침은 탐침 환경 자체가 시작되고 나갈 때 발사된다.

부에어

ProbeVue는 운영 체제 이벤트를 모니터링하는 도구로 설계되었기 때문에 Vue 언어는 이러한 이벤트에서 파생된 데이터를 처리하는 방법을 설명하는 데 사용되는 이벤트 기반 스타일을 사용한다.

다른 유니스에서 발견되는 대부분의 동적 추적 언어와 마찬가지로, Vue 언어는 C와 같은 구문을 가지고 있으며 이러한 맥락에서 자주 제시된다.Vue와 C의 관계는 많은 유사점을 가지고 있지만 C의 필수적 성격에서 가장 크게 벗어났다.여기에 대조와 유사성이 몇 가지 나타나 있다.[3]

데이터 유형

ProbeVue는 주로 C로 작성된 애플리케이션을 모니터링하는 데 사용되기 때문에 C 데이터 구조뿐만 아니라 모든 C 데이터 유형을 지원한다.Vue는 문자열, 목록 및 타임스탬프 데이터 유형도 지원한다.String과 list type은 모두 실제 배열인 반면, 타임 스탬프는 한 점을 고해상도로 표현한 것이다.혼합형 작업 시 타입 캐스팅과 자동 타입 프로모션도 C 거동과 유사하다.

어레이 및 데이터 구조에 대한 포인터는 C 프로그램에서와 동일하게 ProbeVue에서 동작하며, C와 주요 차이점은 포인터가 메모리의 위치를 참조할 때 다른 프로세스 공간의 위치를 참조한다는 것이다.해당 메모리에 액세스하려면 먼저 메모리 위치를 로컬 ProbeVue 환경에 복사해야 한다.메모리가 페이징된 경우 ProbeVue는 페이지 결함이 메모리에 액세스하도록 강제할 수 없다.또 다른 차이점은 C의 포인터의 크기가 컴파일 시간에 결정되는 반면 ProbeVue에서는 프로빙되는 애플리케이션의 32비트 또는 64비트 정도에 의해 결정된다는 것이다.

부동 소수점 데이터 유형은 검증된 공정에서 할당하는 데 유효한 데이터 유형이지만 부동 소수점 수학적 연산에 사용할 수는 없다.

데이터 클래스

Vue는 C와 유사한 범위 지정 규칙을 사용하지만 시도에서 많은 데이터의 외부 파생 특성을 설명해야 한다.따라서 모든 데이터 클래스가 View 스크립트의 모든 시도 또는 모든 부분에 사용 가능하거나 관련되지는 않는다.데이터의 기본 분류는 다음과 같다.

전역 - 전체 Vue 스크립트에 걸쳐 범위가 있는 변수
셸 - 셸 규칙을 따르고 Unix 환경에서 읽은 변수
커널 - 커널에서 제공하는 변수
local - 프로브 작업 블록에 로컬인 변수
스레드 로컬 - 스레드에 로컬이지만 여러 프로브 작업 블록에 걸쳐 범위가 있는 변수
진입/출구 - 프로브에 의해 정의되고 로컬로 정의되는 변수
내장 - 현재 점화 프로브와 관련된 값을 갖는 미리 정의된 변수

연산자

Vue 연산자는 문자열과 함께 사용할 때를 제외하고 C 규약을 철저히 준수한다.문자열과 함께 사용할 경우 + 연산자는 연동을 수행하고 == 연산자는 비교에 사용된다.

흐름 제어

Vue는 사용자 기능,[4] 재귀 또는 루프 구성의 정의를 허용하지 않지만 프로브 작업 블록 내에서 조건부 if-then 식을 제공한다.ProbeVue의 경량 특성은 Vue 스크립트가 성능을 저하시킬 수 있는 값비싼 루프 또는 광범위한 분기 작업을 정의하는 것을 금지한다.

잠정추적

잠정적 추적은 코드 블록의 추적 출력을 임시로 라벨링할 수 있는 개념이다.이 코드의 출력은 나중에 추적 버퍼에 가시적 출력으로 커밋되거나 폐기될 수 있다.이것은 개념적으로 SQL트랜잭션 제어와 매우 유사하다.

사용법

Vue 스크립트는 인터프리터 매직으로 호출하여 셸 스크립트처럼 실행 가능한 설정 또는 명령줄 매개 변수 또는 stdin 입력의 형태로 probeue 명령에 대한 입력으로 실행할 수 있다.[5]관례에 따라, Vue 스크립트는 .e 파일 이름 확장자를 가지고 있다.

결점

Vue 언어는 집계가 부족하고 대신 유사하지만 제한된 기능을 제공하는 목록 데이터 유형을 사용한다.DTrace라고 불리는 Solaris의 동등한 제품은 통계 데이터를 나타내는 집계 데이터 유형과 강력한 집계 기능 세트를 제공한다.목록 데이터 유형은 DTrace가 제공하는 연관 집합 배열과 달리 단일 항목에서 기본 집계 기능만 제공한다.목록 데이터 유형은 통계를 수동으로 유지하는 것보다 약간 단순화하지만, 수동 요약과 기본 유형을 사용할 때 쉽게 수행할 수 있는 목록 재설정(예: 간격에 걸쳐)을 허용하지 않는다.IBM은 미래 버전의 Vue 언어에 대한 연관 어레이에 전념했다.

개발 리드 타임 DTrace가 ProbeVue보다 길기 때문에 DTrace는 프로브 포인트 사양이 상당히 더 많다.[6]IBM은 AIX 6.1의 향후 기술 수준 릴리스와 다음 주요 AIX 릴리스에 상당한 수의 새로운 프로브 포인트를 추가할 계획이다.

참고 항목

참조

  1. ^ IBM RedBooks: IBM AIX 버전 6.1 차이점 가이드(2008년 3월) ProbeVue 섹션
  2. ^ AIX 7.1 기술 센터 페이지의 ProbeVue 항목
  3. ^ Vue 언어 개념에 대한 논의는 6.1 Difference RedBook Vue 섹션과 ProbeVue: Extended Users Guide Specification에서 확인할 수 있다.
  4. ^ ProbeVue 환경 내에서 사전 정의된 기능을 사용할 수 있다.미리 정의된 기능 목록은 AIX 6.1 차이 RedBook 또는 ProbeVue: 확장 사용자 가이드 사양을 참조하십시오.
  5. ^ AIX 6.1 기술 센터 페이지의 프로브뷰 명령어 항목
  6. ^ 이것들은 DTrace에서 Providers라고 불린다.

외부 링크