Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
eBPF with PHP をさわる 2025/01/29 第172回PHP勉強会@東京
Slide 2
Slide 2 text
自己紹介 ちひろ 株式会社モリサワ X: @chiroruxxxx
Slide 3
Slide 3 text
はじめに エンジニアが「システムを作ること」が価値になる時代は 終わりつつある? AI・ノーコード・ローコードの出現 小学生でもブログやゲームサーバを作れる 「システムが動き続けること」は引き続き価値になる 事業会社はもちろん 受託開発でもワンストップ化が進んでいる DevOps・SRE エンジニアが開発もするし、運用もする 開発の段階から運用・監視を作り込む ということで運用監視に近い話をするぞ
Slide 4
Slide 4 text
eBPF
Slide 5
Slide 5 text
eBPF Linuxの機能で、カーネルのイベントをフックして簡単なプ ログラムを実行する機能 Macでは動きません WSLでは・・・どうなんだろう HyperVにくわしくない Docker on Macではうまく動かなかった おま環の可能性もある だがカーネルのイベントなんていう低レイヤーはさわりたく ない そこでUSDT!!
Slide 6
Slide 6 text
USDT User Statically-Defined Tracing DTrace用にイベントを発火する機能 eBPFのイベントフックに利用できる もちろんPHPにもある
Slide 7
Slide 7 text
PHPとUSDT
Slide 8
Slide 8 text
どういうこと だってばよ PHP eBPF 処理 処理 処理 処理 イベント イベント イベント
Slide 9
Slide 9 text
デモ やってみよう
Slide 10
Slide 10 text
デモが できなかった とき用
Slide 11
Slide 11 text
デモが できなかった とき用
Slide 12
Slide 12 text
デモが できなかった とき用
Slide 13
Slide 13 text
何が嬉しい? PHPのコードを汚さずにPHPの動作を取得できる PHPからログを出そうとすると、プログラムを修正する必要が ある ステージング環境でのバグ調査に便利か? プロダクションだと取得したデータをどこかに送るくらい? Linuxの機能かつ非同期なのでオーバーヘッドが少ない 他のミドルウェアをまたいだ解析に memcachedやMySQLにもUSDTがある
Slide 14
Slide 14 text
何が嬉しい? オレオレAPMとかも作れるか? リクエストごとにプロセスが立てばいけそう? APMのお金が払えないときとか・・・
Slide 15
Slide 15 text
肌感 わからん でも何かに使えそうな雰囲気はある ワークショップに参加すれば何かわかるかもしれない
Slide 16
Slide 16 text
ピセカ 2/8(土)
Slide 17
Slide 17 text
参考 「eBPF+USDTでphpをトレースしてみる、bpftraceと RbBCCでやる」 https://dasalog.hatenablog.jp/entry/2020/04/30/094503 「超入門 よかBPF for PHPer」 https://udzura.jp/slides/2024/phpconfuk2024-preevent/