バグ調査やパフォーマンス改善に役立つ!eBPFを用いたトレーシングについて
はじめに この記事では、Linuxカーネルに実装されているパケットフィルタであるeBPFを使ったトレーシングツール、具体的にはDTrace, SystemTap, bpftrace,bcc-toolsなどについて紹介させていただきます。この記事の目標を以下に示します。 DTraceやSystemTapを簡単に説明し、eBPFを用いたトレーシングのうれしいところをお伝えします。 bpftraceやbcc-toolsといったツールの簡単な使い方を紹介し、細かいツールを調べる上での足がかりになるようにします。 公式の資料がかなり充実していることをお伝えします。この記事で使っている画像はそこから使わせていただいています。 eBPF概説 eBPFは、Linuxカーネル3.15からBPF(Berkeley Packet Filter)の拡張仕様として導入されました。BPFはこれまでにもパケットフィルタやシステムコールフィルタ(例えばseccomp)など強力な機能を有していましたが、eBPFの導入によって、高速なネットワーク処理、より詳細なLinuxでのメトリクス取得に活用の幅が広がってきています。eBPFを取り巻くOSSプロダクトは開発もさかんに行われており、本記事では特にbpftraceとbcc-toolsを取り上げ、その一面を覗こうと思います。 トレーシングを可能にするツール パフォーマンスのボトルネック調査やエラーの発生原因調査の際には、procps, sysstat, perf-toolsといったパッケージのツールや、syslogなどをまずは調査することが多いかと思います。しかし、それらから観測できるカウンタ値、ログのみからは判別できないために、より詳細なメトリクスやトレーシングが要求される状況もあるでしょう。これまでは、そうした状況下においてDtraceやSystemTapとbcc-tools bpftrace SystemTap DTrace カーネル BPF eBPF Linux トレーシング
情報元サイト:「さくらのナレッジ」
[ オリジナルサイトで見る ]
この記事へのコメントはありません。