「BPF パフォーマンス ツール - Linux システムとアプリケーションのパフォーマンスに関する洞察」スタディ ノート - 第 1 章 はじめに (2)

前回の記事「BPF パフォーマンス ツール - Linux システムとアプリケーションのパフォーマンスに関する洞察」学習ノート - 第 1 章 はじめに (1) の続きです。

1.2 トレース、スヌーピング、サンプリング、プロファイリング、可観測性とは何ですか?

これらは、分析手法とツールを分類するために使用される用語です。

  • トレース

トレースはイベントベースのログ記録であり、これらの BPF ツールで使用される計測のタイプです。Linux strace などの特殊なトレース ツールをすでに使用して、システム コール イベントを記録および出力しているかもしれません。イベントを追跡せず、固定統計カウンターを使用してイベントを測定し、後で概要を出力するツールは数多くあります (Linux のトップはその一例です)。トラッカーの機能は、生のイベントとイベント メタデータを記録できることです。このようなデータは膨大になる可能性があるため、後処理して概要を作成する必要がある場合があります。BPF を使用すると、プログラム トレーサーがイベントに対して小さなプログラムを実行して、カスタムのオンザフライ統計要約やその他の操作を実行できるため、コストのかかる後処理を回避できます。

  • 詮索する

strace の名前には「trace」が含まれていますが、すべてのトレーサーがこのようになるわけではありません (名前に「trace」が含まれるトレーサーを指します)。たとえば、tcpdump は、ネットワーク パケットの別の特殊なトレーサです。(おそらく tcptrace という名前を付ける必要があるでしょうか?)。Solaris オペレーティング システムには、snoop と呼ばれる独自のバージョンの tcpdump があり、ネットワーク パケットをスヌープするために使用されることからこの名前が付けられました。私は多くのトレース ツールを最初に開発してリリースしたのですが、それは Solaris 上でした。そこでは (おそらく悲しいことに) 初期のツールに対して「スヌープ」という用語を使用していました。そのため、今では execsnoop、opensnoop、biosnoop などが存在します。スヌーピング、イベント ダンピング、トレースは通常、同じものを指します。これらのツールについては、次の章で (1 つずつ) 紹介します。

ツール名に加えて、「トレース」という用語は、特にカーネル開発者によって可観測性を目的として使用される場合、BPF を説明するためにも使用されます。

  • サンプリング

サンプリング ツールは、測定値のサブセットを取得して、ターゲットの大まかな画像を描画します。これは、プロファイルまたはプロファイルの作成とも呼ばれます。実行中のコードのタイマーベースのサンプリングを実行できる、profile と呼ばれる BPF ツールがあります。たとえば、10 ミリ秒ごとにサンプリングできます。つまり、(各 CPU で) 1 秒あたり 100 回サンプリングできます。サンプラーの利点の 1 つは、非常に大きなイベント セットのうちの 1 つだけを測定するため、トラッカーよりもパフォーマンスのオーバーヘッドが低いことです。欠点は、サンプリングでは大まかな全体像しか得られず、イベントが見逃される可能性があることです。

  • 可観測性

可観測性とは、観察を通じてシステムを理解し、この機能を可能にするツールを分類することです。これらのツールには、追跡ツール、サンプリング ツール、固定カウンターベースのツールが含まれます。これには、ワークロード実験を実行してシステムの状態を変更するベンチマーク ツールは含まれません。本書の BPF ツールは、プログラム トレースに BPF を使用する可観測性ツールです。

おすすめ

転載: blog.csdn.net/phmatthaus/article/details/132894820