Skip to main content
QUICK REVIEW

[논문 리뷰] A Zero-Positive Learning Approach for Diagnosing Software Performance Regressions

Mejbah Alam, Justin Gottschlich|arXiv (Cornell University)|2017. 09. 21.
Software System Performance and Reliability참고 문헌 68인용 수 8
한 줄 요약

이 논문은 최소한의 프로파일링 오버헤드로 소프트웨어 성능 저하를 탐지하기 위해 하드웨어 성능 카운터(HWPCs), 오토에인코드어, k-me안 클러스터링을 사용하는 제로-포지티브 학습 프레임워크인 AutoPerf를 제안한다. 이는 평균 4%의 프로파일링 오버헤드를 기록하며, 이전 방법보다 더 높은 정확도로 성능 버그를 진단하며, 10개의 실제 성능 저하 사례에서 거짓 음성 결과가 전혀 발생하지 않는다.

ABSTRACT

The field of machine programming (MP), the automation of the development of software, is making notable research advances. This is, in part, due to the emergence of a wide range of novel techniques in machine learning. In this paper, we apply MP to the automation of software performance regression testing. A performance regression is a software performance degradation caused by a code change. We present AutoPerf - a novel approach to automate regression testing that utilizes three core techniques: (i) zero-positive learning, (ii) autoencoders, and (iii) hardware telemetry. We demonstrate AutoPerf's generality and efficacy against 3 types of performance regressions across 10 real performance bugs in 7 benchmark and open-source programs. On average, AutoPerf exhibits 4% profiling overhead and accurately diagnoses more performance bugs than prior state-of-the-art approaches. Thus far, AutoPerf has produced no false negatives.

연구 동기 및 목표

  • 특히 병렬 프로그램에서 변화하는 소프트웨어 시스템의 성능 저하 원인을 진단하는 데 도전하는 것.
  • 라벨이 붙은 학습 데이터나 이전 결함 사례가 필요한 규칙 기반 및 지도 학습 접근 방식의 한계를 극복하는 것.
  • 라벨이 붙은 이상치에 의존하지 않고 다양한 성능 저하 패tern을 탐지할 수 있는 확장 가능하고 일반적인 솔루션을 개발하는 것.
  • 실제 시스템에서 높은 진단 정확도를 유지하면서도 프로파일링 오버헤드를 최소화하는 것.
  • 생산 수준의 소프트웨어에서 거짓 공유, 진짜 공유, NUMA 지연과 같은 성능 결함를 자동으로 탐지할 수 있도록 하는 것.

제안 방법

  • 경량 인스트루멘테이션을 사용하여 기준 버전(Pi)과 수정된 버전(Pi+1) 프로그램으로부터 하드웨어 성능 카운터(HWPC) 프로파일을 수집한다.
  • 기준 버전(Pi)의 HWPC 프로파일을 기반으로 오토에인코드어 모델을 훈련시켜 정상적인 프로그램 동작을 학습한다.
  • 오토에인코드어의 복원 오차(RE)를 측정하여 제로-포지티브 학습(ZPL)을 적용해 Pi+1에서의 이상 현상을 탐지한다; 높은 RE는 잠재적 저하를 나타낸다.
  • 유사한 기능들을 그룹화하여 학습 오버헤드를 줄이고, 많은 변경된 기능에 걸쳐 스케일러블한 모델 훈련을 가능하게 하기 위해 k-means 클러스터링을 사용한다.
  • 복원 오차 기반 통계적 임계값 히우리스틱 γ(t)를 적용하여 정상적인 변동과 진짜 저하를 구분함으로써 탐지 정확도를 향상시킨다.
  • 기능 수준의 복원 오차와 클러스터링 결과를 분석하여 탐지된 저하를 분류하고 국소화한다.

실험 결과

연구 질문

  • RQ1라벨이 붙은 결함 예제가 필요 없이 제로-포지티브 학습 접근 방식이 성능 저하를 효과적으로 탐지할 수 있는가?
  • RQ2오토에인코드어와 하드웨어 성능 카운터의 통합이 기존 방법에 비해 탐지 정확도를 어떻게 향상시키는가?
  • RQ3k-means 클러스터링은 진단 정확도를 유지하면서 학습 오버헤드를 얼마나 줄이는가?
  • RQ4제안된 임계값 전략 γ(t)는 거짓 양성 결과를 최소화하면서도 높은 진짜 양성 탐지율을 유지하는 데 얼마나 효과적인가?
  • RQ5실제 응용 프로그램에서 제안된 시스템의 프로파일링 오버헤드는 얼마이며, 코드 변경에 따라 어떻게 스케일링되는가?

주요 결과

  • AutoPerf는 평가된 모든 프로그램에서 평균 4%의 프로파일링 오버헤드를 기록하며, MySQL에서는 최대 7%의 오버헤드를 기록한다.
  • 7개의 벤치마크 및 오픈소스 프로그램에서 실제 10개의 성능 버그를 모두 탐지하며, 거짓 음성 결과가 전혀 발생하지 않는다.
  • 임계값 전략 γ(t)를 사용할 경우, t=2에서 진짜 양성률은 1.0, 거짓 양성률은 0.05를 기록하며, UBL 및 임의의 임계값 기반 기준보다 뛰어난 성능을 보인다.
  • k-means 클러스터링은 학습 시간을 2.5배에서 5배까지 줄이며, Memcached에서 기능별 오토에인코드어와 동일한 F1 스코어를 유지한다.
  • 클러스터 수가 증가함에 따라 F1 스코어가 향상되며(k=2에서 k=4로), k=4에서 최고치에 도달함으로써 클러스터링의 확장성과 효율성을 입증한다.
  • AutoPerf는 정확도와 일반화 능력 측면에서 두 가지 최신 기술보다 뛰어나며, 거짓 공유와 NUMA 지연과 같은 복잡한 저하를 효과적으로 탐지한다.

더 나은 연구,지금 바로 시작하세요

논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.

카드 등록 없음 · 무료 플랜 제공

이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.