Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
eBPFインターン 開発ネタ帳
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
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
280
Narrative of Ruby & Rust
udzura
0
250
開発者生産性指標の可視化 / pepabo-four-keys
udzura
3
1.8k
Talk of RBS
udzura
0
480
Re: みなさん最近どうですか? / FGN tech meetup in 2021
udzura
0
830
Dockerとやわらかい仮想化 - ProSec-IT/SECKUN 2021 edition -
udzura
2
780
Device access filtering in cgroup v2
udzura
1
980
"Story of Rucy" on RubyKaigi takeout 2021
udzura
0
880
Other Decks in Technology
See All in Technology
SREが向き合う大規模リアーキテクチャ 〜信頼性とアジリティの両立〜
zepprix
0
470
プロポーザルに込める段取り八分
shoheimitani
1
560
30万人の同時アクセスに耐えたい!新サービスの盤石なリリースを支える負荷試験 / SRE Kaigi 2026
genda
4
1.3k
Bedrock PolicyでAmazon Bedrock Guardrails利用を強制してみた
yuu551
0
250
予期せぬコストの急増を障害のように扱う――「コスト版ポストモーテム」の導入とその後の改善
muziyoshiz
1
2k
~Everything as Codeを諦めない~ 後からCDK
mu7889yoon
3
450
Contract One Engineering Unit 紹介資料
sansan33
PRO
0
13k
SRE Enabling戦記 - 急成長する組織にSREを浸透させる戦いの歴史
markie1009
0
140
セキュリティについて学ぶ会 / 2026 01 25 Takamatsu WordPress Meetup
rocketmartue
1
310
クレジットカード決済基盤を支えるSRE - 厳格な監査とSRE運用の両立 (SRE Kaigi 2026)
capytan
6
2.8k
AIエージェントに必要なのはデータではなく文脈だった/ai-agent-context-graph-mybest
jonnojun
0
170
OpenShiftでllm-dを動かそう!
jpishikawa
0
130
Featured
See All Featured
Abbi's Birthday
coloredviolet
1
4.8k
Dominate Local Search Results - an insider guide to GBP, reviews, and Local SEO
greggifford
PRO
0
78
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
122
21k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
Getting science done with accelerated Python computing platforms
jacobtomlinson
2
120
Reflections from 52 weeks, 52 projects
jeffersonlam
356
21k
Un-Boring Meetings
codingconduct
0
200
How to Align SEO within the Product Triangle To Get Buy-In & Support - #RIMC
aleyda
1
1.4k
Building Applications with DynamoDB
mza
96
6.9k
Navigating Weather and Climate Data
rabernat
0
110
Designing for Timeless Needs
cassininazir
0
130
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
16k
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の知識が必要なので、さすがに大変だ と思いますが...