Skip to main content
QUICK REVIEW

[論文レビュー] Measuring Software Performance on Linux

Martin Becker, Samarjit Chakraborty|arXiv (Cornell University)|Nov 4, 2018
Parallel Computing and Optimization Techniques参考文献 12被引用数 4
ひとこと要約

本論文は、現代のx86プロセッサ搭載Linuxシステムにおけるソフトウェアパフォーマンスの正確な測定を可能にする体系的な測定設定を提案する。CPU周辺の周囲環境要因、特に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.

研究の動機と目的

  • Linuxベースのシステムにおける標準的で信頼性の高いパフォーマンス測定手法の欠如に応える。
  • OSおよびマイクロアーキテクチャ的特徴が引き起こすタイミング誤差の原因を特定し、それらを軽減する。
  • 再現可能でジッタが小さい測定設定を提案し、ソフトウェアパフォーマンスをシステムレベルのノイズから分離する。
  • 測定設定が絶対的パフォーマンス指標に与える影響は顕著であるが、比に基づく分析には最小限の影響にとどまることを実証する。
  • バックグラウンド負荷下でも測定の安定性と信頼性を向上させる。

提案手法

  • CPU周波数スケーリングを無効化(例:'performance' governorの使用)して、変動するクロック周波数を排除する。
  • cgroupsを用いてターゲットプロセスを隔離し、他のプロセスおよび割り込みによる干渉を制限する。
  • CPUアイドル状態(C-states)と割り込みの緩和(例:ローカルAPICタイマー、ftrace)を無効化して、タイミングジッタを低減する。
  • Linuxの'perf'ツールを介してハードウェアパフォーマンスカウンタを活用し、正確なイベントカウント(例:キャッシュミス、分岐予測誤り)を収集する。
  • 不確実性の伝播を考慮した階層的パフォーマンス分析を適用し、測定誤差のマージンを定量化する。
  • さまざまなバックグラウンド負荷下で、デフォルト設定と最適化済み設定を比較する制御実験を実施する。

実験結果

リサーチクエスチョン

  • RQ1Linux上でのOSレベルの機能、たとえばCPU周波数スケーリング、C-states、割り込み処理は、ソフトウェアのタイミング測定にどのように影響を与えるか?
  • RQ2どの特定のシステム設定が、パフォーマンステストにおける測定ジッタを最小限に抑え、再現性を高めるか?
  • RQ3測定設定が絶対的パフォーマンス指標に与える影響と、比に基づくパフォーマンス分析への影響の程度はどの程度か?
  • RQ4バックグラウンドシステム負荷がパフォーランス測定の安定性に与える影響は何か? また、提案された設定はこれを緩和できるか?
  • RQ5標準化された測定設定は、ハイパフォーマンスアプリケーションのパフォーマンスデータの信頼性を向上させることができるか?

主な発見

  • 提案された測定設定により、デフォルト設定下での最大64%のパフォーマンス低下が、バックグラウンド負荷下でも6%未満にまで低減された。
  • 絶対的イベントカウント(例:キャッシュミス)に関しては、提案された設定が顕著な改善をもたらした。ストリームパフォーマンスは、デフォルト設定の67%低下と比較して、わずか2%の低下にとどまった。
  • バックグラウンド負荷下でも安定したパフォーマンスを維持し、デフォルト設定と比較して優れた耐性を示した。
  • 驚くべきことに、比に基づくパフォーマンス分析(例:スループット比)においては、測定設定の影響が最小限に抑えられ、相対的比較の堅牢性が示された。
  • ハードウェアパフォーマンスカウンタ('perf'経由)は、パフォーマンスボトルネックを的確に特定したが、その正確性は測定設定に強く依存していた。
  • cgroupsおよびCPU隔離と組み合わせることで、ジッタと測定不確実性が顕著に低減された。

より良い研究を、今すぐ始めましょう

論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。

クレジットカード登録不要

このレビューはAIが作成し、人間の編集者が確認しました。