정밀 요청 추적과 성능 디버깅을 위한 다계층 블랙박스 서비스

본 논문은 소스 코드가 없는 상용 컴포넌트와 이기종 미들웨어로 구성된 다계층 서비스의 요청 흐름을 정확히 추적하기 위한 도구 PreciseTracer를 제안한다. 운영체제 커널 수준에서 TCP 송·수신 활동을 기록하고, 시간 스탬프와 프로세스·스레드 컨텍스트, 메시지 식별자를 이용해 애플리케이션 독립적인 인과 관계 그래프(CAG)를 구성한다. 알고리즘은 슬라이딩 윈도우와 우선순위 기반 후보 선택으로 노이즈와 동시성 교란을 견디며, 낮은 오버헤드…

저자: Zhihong Zhang, Jianfeng Zhan, Yong Li

본 논문은 소스 코드가 제공되지 않는 상용 컴포넌트와 이기종 미들웨어로 구성된 다계층 서비스의 요청 흐름을 정밀하게 추적하고 성능 문제를 디버깅하기 위한 도구 PreciseTracer를 제안한다. 기존 연구는 크게 두 가지 접근법을 사용했는데, 하나는 확률적 상관관계에 의존해 인과 관계를 추정하는 방법이며, 다른 하나는 HTTP·RPC 등 고수준 프로토콜에 대한 사전 지식을 활용해 요청을 구분하는 방법이다. 그러나 전자는 정확도가 낮고, 후자는 프로토콜이 바뀔 때마다 새로운 파서와 규칙을 작성해야 하는 비효율성을 가진다. PreciseTracer는 이러한 한계를 극복하기 위해 전적으로 운영체제 커널 수준의 정보를 활용한다. 구체적으로는 Linux 커널의 TCP 송·수신 함수(tcp_sendmsg, tcp_recvmsg)에 SystemTap 기반 Kprobe를 삽입해 SEND와 RECEIVE 이벤트를 실시간으로 캡처한다. 각 이벤트는 타임스탬프, 호스트명, 프로그램명, 프로세스·스레드 ID, 메시지 식별자(IP·포트·크기) 등 네 가지 속성을 기록한다. BEGIN과 END 이벤트는 포트 번호(예: 80번 포트)로 자동 구분한다. 이렇게 수집된 원시 로그는 노드별로 로컬 타임스탬프에 따라 정렬된 큐에 저장된다. 다음 단계는 Ranker와 Engine이라는 두 모듈로 구성된 Correlator가 수행한다. Ranker는 슬라이딩 타임 윈도우를 설정하고, 각 큐의 헤드 이벤트를 비교해 후보 이벤트를 선택한다. 후보 선택 규칙은 먼저 메시지 관계가 존재하는 RECEIVE 이벤트를 우선하고, 없을 경우 BEGIN

원본 논문

고화질 논문을 불러오는 중입니다...

댓글 및 학술 토론

Loading comments...

의견 남기기