Skip to main content
QUICK REVIEW

[논문 리뷰] Measuring Software Performance on Linux

Martin Becker, Samarjit Chakraborty|arXiv (Cornell University)|2018. 11. 04.
Parallel Computing and Optimization Techniques참고 문헌 12인용 수 4
한 줄 요약

이 논문은 현대 x86 프로세서를 탑재한 리눅스 시스템에서 소프트웨어 성능을 정확하게 평가하기 위한 체계적인 측정 설정을 제안한다. 운영체제 및 하드웨어 간섭, 특히 CPU 주파수 스케일링, cgroups, 인터럽트 관리 방식을 최소화함으로써 시간 지연을 줄이고 측정 신뢰도를 향상시킨다. 이는 배경 로드 조건에서도 특히 효과적이며, 기본 설정에서 최대 64%까지 발생할 수 있었던 성능 저하가 제안된 설정에서는 6% 미만으로 감소됨을 보여준다.

ABSTRACT

Measuring and analyzing the performance of software has reached a high complexity, caused by more advanced processor designs and the intricate interaction between user programs, the operating system, and the processor's microarchitecture. In this report, we summarize our experience about how performance characteristics of software should be measured when running on a Linux operating system and a modern processor. In particular, (1) We provide a general overview about hardware and operating system features that may have a significant impact on timing and how they interact, (2) we identify sources of errors that need to be controlled in order to obtain unbiased measurement results, and (3) we propose a measurement setup for Linux to minimize errors. Although not the focus of this report, we describe the measurement process using hardware performance counters, which can faithfully reflect the real bottlenecks on a given processor. Our experiments confirm that our measurement setup has a large impact on the results. More surprisingly, however, they also suggest that the setup can be negligible for certain analysis methods. Furthermore, we found that our setup maintains significantly better performance under background load conditions, which means it can be used to improve software in high-performance applications.

연구 동기 및 목표

  • 리눅스 기반 시스템에 대한 표준화되고 신뢰할 수 있는 성능 측정 관행의 부족을 해결하기 위해.
  • 운영체제 및 마이크로아키텍처적 기능이 유도하는 시간 오차의 원인을 규명하고 이를 완화하기 위해.
  • 소프트웨어 성능을 시스템 수준의 노이즈에서 분리하기 위해 재현 가능하고 지연이 적은 측정 설정을 제안하기 위해.
  • 측정 설정이 절대 성능 지표에 미치는 영향은 크지만 비율 기반 분석에는 거의 영향을 주지 않음을 입증하기 위해.
  • 배경 로드 조건 하에서 성능 측정의 안정성과 신뢰도를 향상시키기 위해.

제안 방법

  • 변동하는 클럭 속도를 제거하기 위해 CPU 주파수 스케일링을 비활성화(예: 'performance' 게이지언 사용)하여.
  • 다른 프로세스와 인터럽트의 간섭을 제한하기 위해 대상 프로세스를 cgroups로 격리하여.
  • CPU 절전 상태(C-states)와 인터럽트 완화(예: 로컬 APIC 타이머, ftrace)를 비활성화하여 시간 지연을 줄여.
  • 리눅스의 'perf' 도구를 통해 하드웨어 성능 카운터를 사용하여 정밀한 이벤트 수(예: 캐시 미스, 분기 오류 예측)를 수집하여.
  • 측정 오차의 범위를 정량화하기 위해 불확실성 전파를 고려한 계층적 성능 분석을 적용하여.
  • 다양한 배경 로드 조건 하에서 기본 설정과 최적화된 설정을 비교하는 제어 실험을 수행하여.

실험 결과

연구 질문

  • RQ1리눅스에서 CPU 주파수 스케일링, C-states, 인터럽트 처리와 같은 운영체제 수준 기능이 소프트웨어 시간 측정에 어떤 영향을 미치는가?
  • RQ2어떤 특정 시스템 설정이 성능 테스트에서 측정 지연을 최소화하고 재현 가능성을 향상시키는가?
  • RQ3측정 설정이 절대 성능 지표에 비해 비율 기반 성능 분석에 얼마나 큰 영향을 미치는가?
  • RQ4배경 시스템 로드가 성능 측정 안정성에 어떤 영향을 미치며, 제안된 설정이 이를 완화할 수 있는가?
  • RQ5표준화된 측정 설정이 고성능 응용 프로그램의 성능 데이터 신뢰도를 향상시킬 수 있는가?

주요 결과

  • 제안된 측정 설정은 기본 설정에서 최대 64%까지 발생할 수 있었던 성능 저하를 배경 로드 조건 하에서 6% 미만으로 감소시켰다.
  • 절대 이벤트 수(예: 캐시 미스)의 경우 제안된 설정에서 뚜렷한 개선이 있었으며, 스트림 성능은 기본 설정 대비 2%만 저하되었고, 이는 기본 설정에서의 67% 저하에 비해 유의미하게 향상된 결과였다.
  • 배경 로드 조건 하에서도 설정이 안정된 성능을 유지하여 기본 설정 대비 뛰어난 내구성을 입증하였다.
  • 놀랍게도 비율 기반 성능 분석(예: 스피드업 비율)의 경우 측정 설정이 결과에 거의 영향을 주지 않아 상대 비교에서의 강건성을 시사하였다.
  • 하드웨어 성능 카운터(‘perf’를 통해)는 성능 병목을 정확히 식별하였지만, 그 정확도는 측정 설정에 크게 의존하였다.
  • cgroups와 CPU 격리와 함께 조합했을 때 측정 지연과 측정 불확실성이 크게 감소하였다.

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

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

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

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