Lock in $30 Savings on PRO—Offer Ends Soon! ⏳
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
eBPFインターン 開発ネタ帳
Search
KONDO Uchio
September 08, 2020
Technology
0
180
eBPFインターン 開発ネタ帳
KONDO Uchio
September 08, 2020
Tweet
Share
More Decks by KONDO Uchio
See All by KONDO Uchio
大規模レガシーテストを 倒すための CI基盤の作り方 / #CICD2023
udzura
5
2.5k
Ruby x BPF in Action / RubyKaigi 2022
udzura
0
270
Narrative of Ruby & Rust
udzura
0
240
開発者生産性指標の可視化 / pepabo-four-keys
udzura
3
1.8k
Talk of RBS
udzura
0
470
Re: みなさん最近どうですか? / FGN tech meetup in 2021
udzura
0
820
Dockerとやわらかい仮想化 - ProSec-IT/SECKUN 2021 edition -
udzura
2
760
Device access filtering in cgroup v2
udzura
1
960
"Story of Rucy" on RubyKaigi takeout 2021
udzura
0
870
Other Decks in Technology
See All in Technology
たまに起きる外部サービスの障害に備えたり備えなかったりする話
egmc
0
270
【U/day Tokyo 2025】Cygames流 最新スマートフォンゲームの技術設計 〜『Shadowverse: Worlds Beyond』におけるアーキテクチャ再設計の挑戦~
cygames
PRO
2
730
30分であなたをOmniのファンにしてみせます~分析画面のクリック操作をそのままコード化できるAI-ReadyなBIツール~
sagara
0
180
シニアソフトウェアエンジニアになるためには
kworkdev
PRO
3
180
re:Invent2025 3つの Frontier Agents を紹介 / introducing-3-frontier-agents
tomoki10
0
250
生成AI活用の型ハンズオン〜顧客課題起点で設計する7つのステップ
yushin_n
0
240
MariaDB Connector/C のcaching_sha2_passwordプラグインの仕様について
boro1234
0
840
5分で知るMicrosoft Ignite
taiponrock
PRO
0
400
まだ間に合う! Agentic AI on AWSの現在地をやさしく一挙おさらい
minorun365
12
650
業務のトイルをバスターせよ 〜AI時代の生存戦略〜
staka121
PRO
2
220
Power of Kiro : あなたの㌔はパワステ搭載ですか?
r3_yamauchi
PRO
0
180
AWSを使う上で最低限知っておきたいセキュリティ研修を社内で実施した話 ~みんなでやるセキュリティ~
maimyyym
2
1.8k
Featured
See All Featured
[RailsConf 2023] Rails as a piece of cake
palkan
58
6.2k
Visual Storytelling: How to be a Superhuman Communicator
reverentgeek
2
390
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
5.8k
VelocityConf: Rendering Performance Case Studies
addyosmani
333
24k
Fireside Chat
paigeccino
41
3.7k
The Cost Of JavaScript in 2023
addyosmani
55
9.4k
Mobile First: as difficult as doing things right
swwweet
225
10k
It's Worth the Effort
3n
187
29k
How STYLIGHT went responsive
nonsquared
100
6k
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
390
From π to Pie charts
rasagy
0
86
Typedesign – Prime Four
hannesfritz
42
2.9k
Transcript
PEPABO SUMMER INTERN VERSION 近藤うちお / GMO Pepabo, Inc. 2020.09.08
eBPF インターンネタ帳
この資料は何 •ペパボインターンで「皆様にやって欲しいこと」のネタ帳です。 •ここにない内容でももちろん構わないのですが、 なかなか現場でeBPFを活用するネタをゼロから提案するのは難しい でしょうので、当座で @udzura が欲しいものを考えてみました。 •@udzura なら時間をかければ書けるものもありますし、 そもそもいったい何なのか調べるところからというものもあります。
ツール作成・検証
コンテナ対応トレースのPoC •「コンテナ対応」には皆さんもご存知の通り2方針がある •eBPFのCgroup v2ヘルパーを利用したもの •task_struct からnamespaceを辿ってフィルタするもの •これらのそれぞれの方針について、違いやメリットデメリット、 それぞれの制限をレポートし、 そして簡単な検証環境とミニマルな実装を作成して欲しい
マネージドクラウド用ツール開発 •マネージドクラウドというコンテナをふんだんに使ったサービスがあ り、コンテナ単位でのトレースをしたい気持ちがある。 •BCCツールの中でも以下あたりをコンテナ対応できると嬉しい •ext4slower •nfsslower •tcpconnlat •syscount •......
mod_dtrace 検証 •https://github.com/Matty9191/apache-dtrace-module •https://prefetch.net/projects/apache_modtrace/index.html •マネージドクラウドやその他ホスティングサービスで使えるかどう か、簡単なドキュメントと、いろいろな設定のApacheに対してどの ような計測ができそうかレポートして欲しい。
PHPまたはRubyのUSDT利用のPoC •PHP、Rubyともに --enable-dtrace でUSDTが入る •これらを使って有益なツールが考えられないか? •e.g. Rack::EBPF https://github.com/udzura/rack-ebpf •e.g. mod_php
や他のUSDTと組み合わせたもの https://myaut.github.io/dtrace-stap-book/app/web.html •WordPress とかで解析できないかな?
systemdのkillを監視するツール開発 •systemdが謎にサービスをkillしているような気配があった •状況証拠から原因を突き止めたが、その現場を突き止められるよう なツールを作成して欲しい。 •killsnoop をベースに作れないかな? •https://github.com/iovisor/bcc/blob/master/tools/killsnoop.py •できれば再現可能な動作環境とともに実装して欲しい
トレース状況を可視化するツール •トレース情報は 1) 多い 2) 雑多 になりがちで、いい感じのグラフ などにならないと運用で常用するのは難しい... •BCCの既存ツールベースでいいので、それらの結果をTUIじゃなくて もっと綺麗にできないか?
•e.g. matplotlib(Rubyならcharty)と簡単連携ライブラリ •e.g. Jupyter Notebook ベースのツール •e.g. Prometheus などと連携した何か
sheer-heart-attackをeBPF対応 •https://github.com/k1LoW/sheer-heart-attack •常駐させて特定のイベントの時に特定のコマンドを発火させるツール このイベントソースにeBPFを用いることでアレできないか? •提案レベルでも動かせたらあとは @k1LoW さんがやってくれる •eBPFのイベント例: システムコールの回数、レイテンシ、TCP接続 の何か、etc...
•gobpf使うかも: https://github.com/iovisor/gobpf
RbBCCの改善 ※ 要Rubyの知識 ※ しかも割と高度な
RbBCC •@udzura が開発しているBCCのRuby port •中身はlibbccのFFIで、BCC同梱のPythonライブラリと全く同じ思想 •Rubyアソシエーション開発助成対象プロジェクト(2019) •https://github.com/udzura/rbbcc
RbBCCで困ってること •テストケースが全然ない •スモークテストだけなので、もう少し現実的なテストケースを考え て追加してくれると嬉しい(これは、Rubyのインターン感が強い) •サンプル、ツールがまだまだ少ない •Python版BCCにあるツールがそもそもRubyに移植できるのかから調 べる。足りない機能は実装する
RbBCCで困ってること(2) •RbBCCにおけるネットワークトレーシング実装の移植 •XDP含めその辺りのAPIを移植していない •BCCの examples/networking/* 以下のサンプルを移植し、 動くようにして欲しい。一つでも増えると嬉しい •@udzura はネットワークあんまり得意じゃないっすので...
その他、RbBCC周辺で •BPFQLで他のProbeを実装して欲しいなあ........ •https://github.com/udzura/bpfql •いまのところtracepointしかうごかなくて、完全にPoCレベル •こいつにはメタプロ含むRubyの知識が必要なので、さすがに大変だ と思いますが...