## Memo
## Abstract
パフォーマンス・デバッグは、実世界のパフォーマンス問題が明確な故障であることは稀であり、きめ細かな症状の積み重ねによって顕在化するものである。システム性能は本質的に作業負荷に対する相対的なものであるため、絶対的な測定は信頼性に欠けます。既存の技法は、実行間で乖離する絶対的な述語を特定することに重点を置いており、性能問題への適用を制限している。本稿では、パフォーマンス問題の根本原因を自動的に突き止める新しい技術であるリレーショナルデバッグを紹介する。核となるアイデアは、詳細な実行時イベント間の関係を捕捉し、推論することである。我々は、リレーションがパフォーマンスの異常を説明し、根本原因を突き止めるのに非常に有効であることを示す。リレーショナル・デバッグは、最小限の2つの実行(良い実行と悪い実行)で非常に効果的であり、従来の技術で必要とされた多くの異なる実行を生成し、ラベル付けするという苦痛を排除する。我々は、Perspectという実用的なツールを開発することにより、リレーショナルデバッグを実現した。Perspectは、実際の診断シナリオに対応するため、x86バイナリ上で直接動作する。Goランタイム、MongoDB、Redis、Coreutilsにおける様々な症状を持つ12の困難なパフォーマンス問題についてPerspectを評価した。Perspectは、これらの問題の根本原因を正確に特定(または除外)しました。特に、開発者が根本原因を特定できなかった2つの未解決のバグをPerspectで診断しました。管理されたユーザー調査により、Perspectはデバッグを少なくとも10.87倍高速化できることが示されました。