Upgrade to Pro — share decks privately, control downloads, hide ads and more …

テレメトリーシグナルが導くパフォーマンス最適化 / Performance Optimizat...

テレメトリーシグナルが導くパフォーマンス最適化 / Performance Optimization Driven by Telemetry Signals

Avatar for shiro seike

shiro seike PRO

March 20, 2026
Tweet

More Decks by shiro seike

Other Decks in Programming

Transcript

  1. ©Fusic Co., Ltd. 自己紹介 はじめに 清家 史郎 (@seike460) SHIRO SEIKE

    株式会社Fusicプリンシパルエンジニア/エバンジェリスト AWS User Group Leaders AWS Community Builder Serverless 2025 Japan AWS Top Engineers JAWS Days 2026 実行委員長
  2. ©Fusic Co., Ltd. • CNCF公式の ベンダーフリー テレメトリ基盤 • PHP: PECL拡張で

    コード変更ゼロ計装 OpenTelemetry — 計測の標準基盤
  3. ©Fusic Co., Ltd. 今日のサンプルアプリ : BookShelf API • V1 ボトルネックあり

    / V2 最適化済み • Docker Compose で 1コマンド起動
  4. ©Fusic Co., Ltd. 今日のサンプルアプリ : BookShelf API • V1 ボトルネックあり

    / V2 最適化済み • Docker Compose で 1コマンド起動
  5. ©Fusic Co., Ltd. ボトルネック 1: N+1クエリ — V1 /books •

    Book::all() — ページネーションなし • $book->author — 都度SELECT発行
  6. ©Fusic Co., Ltd. V1 トレース実測 : 50,009スパン / 約62秒 •

    GET /api/v1/books の 実測 トレースデータ • 50,009スパン の異常なDB操作
  7. ©Fusic Co., Ltd. V2 の修正: Eager Loading + Pagination •

    with() で N+1を解消 • paginate(20) で 20件ずつ 取得
  8. ©Fusic Co., Ltd. V2 トレース: 23スパン / 23ms 約2,700倍の改善 V1

    V2 改善 レイテンシ 62,370ms 23ms ~2,700x スパン数 50,009 23 2,174x SQLクエリ ~10,001 4 2,500x
  9. ©Fusic Co., Ltd. V2 の修正: 非同期Job化 • 重い処理を Queue Job

    にオフロード • 5,537ms → 1,017ms (約5倍改善)
  10. ©Fusic Co., Ltd. Metrics — 改善効果を計測する • Traces = 点の分析

    / Metrics = 線の監視 • spanmetrics で RED Metrics 自動生成
  11. ©Fusic Co., Ltd. V1 vs V2 レイテンシ比較 — 実データ エンドポイント

    V1 p95 V2 p95 改善率 GET /books 62,370ms 23ms ~2,700x POST /orders 5,537ms 1,017ms ~5x GET /books/{id} 35ms 29ms 1.2x GET /books/search 396ms 28ms ~14x
  12. ©Fusic Co., Ltd. 3シグナルの相関 — Trace IDで紐づける • spanmetrics で自動変換

    • Exemplar で逆引き • これらをOpenTelemetryMCPを利用して「データソース」 に出来る
  13. ©Fusic Co., Ltd. Collector 構成: memory_limiter と batch • memory_limiter:

    512MiB 上限 • batch: 1024スパン ごと送信
  14. ©Fusic Co., Ltd. 今日から始める 3ステップ • 計装 → 収集 →

    可視化 の3ステップ • 数時間で 小さく始められる