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
Continuous Profiling in Go
Search
tatsumack
April 15, 2022
Technology
0
860
Continuous Profiling in Go
Go Tech Talk【サイバーエージェント x ミラティブ】
の発表資料です。
tatsumack
April 15, 2022
Tweet
Share
Other Decks in Technology
See All in Technology
"人"が頑張るAI駆動開発
yokomachi
1
620
_第4回__AIxIoTビジネス共創ラボ紹介資料_20251203.pdf
iotcomjpadmin
0
140
アラフォーおじさん、はじめてre:Inventに行く / A 40-Something Guy’s First re:Invent Adventure
kaminashi
0
160
AI時代のワークフロー設計〜Durable Functions / Step Functions / Strands Agents を添えて〜
yakumo
3
2.3k
2025年のデザインシステムとAI 活用を振り返る
leveragestech
0
330
Authlete で実装する MCP OAuth 認可サーバー #CIMD の実装を添えて
watahani
0
200
Amazon Connect アップデート! AIエージェントにMCPツールを設定してみた!
ysuzuki
0
140
Amazon Quick Suite で始める手軽な AI エージェント
shimy
2
1.9k
松尾研LLM講座2025 応用編Day3「軽量化」 講義資料
aratako
9
4.3k
アプリにAIを正しく組み込むための アーキテクチャ── 国産LLMの現実と実践
kohju
0
230
モダンデータスタックの理想と現実の間で~1.3億人Vポイントデータ基盤の現在地とこれから~
taromatsui_cccmkhd
2
270
ソフトウェアエンジニアとAIエンジニアの役割分担についてのある事例
kworkdev
PRO
0
290
Featured
See All Featured
Navigating Weather and Climate Data
rabernat
0
54
Reality Check: Gamification 10 Years Later
codingconduct
0
1.9k
Conquering PDFs: document understanding beyond plain text
inesmontani
PRO
4
2.1k
Making Projects Easy
brettharned
120
6.5k
KATA
mclloyd
PRO
33
15k
Context Engineering - Making Every Token Count
addyosmani
9
560
What’s in a name? Adding method to the madness
productmarketing
PRO
24
3.8k
Learning to Love Humans: Emotional Interface Design
aarron
274
41k
The Limits of Empathy - UXLibs8
cassininazir
1
190
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
5.8k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
54k
SEOcharity - Dark patterns in SEO and UX: How to avoid them and build a more ethical web
sarafernandez
0
89
Transcript
STRICTLY CONFIDENTIAL GoでContinuous Profilingをやっている話 2022.04.14 Tatsuhiko Makino © 2022 Mirrativ,
Inc.
自己紹介 ▪ 牧野 龍彦 ⁃ @tatsumack ▪ Mirrativ バックエンドエンジニア
⁃ リード兼マネージャー ⁃ 前職はDeNAでゲーム開発 ⁃ 2019年8月に入社して、現在はバックエンド基盤開発
Continuous Profiling ▪ ざっくり言うと、本番環境で継続的にプロファイリングすること ⁃ 本番環境でのみ発生するパフォーマンスの問題を捉えることができる ⁃ 継続的にプロファイリングすることで問題が発生する前後の状態を比較 することができる
Continuous Profiling ▪ Continuous Profilingを行うために必要なこと ⁃ 本番環境でオーバーヘッドが少なく安全にプロファイリングを実行できる か ⁃ どこにプロファイリング結果を保存するか
⁃ 保存したプロファイリング結果をどのようにして検索・抽出するか
GoのProfiling Tool ▪ pprof ⁃ プロファイリングのためのGoの標準ツール ⁃ オーバーヘッドが小さく、本番環境でも利用できる • pprofの仕組み
https://research.swtch.com/pprof
Continuous Profilingとは ▪ Continuous Profilingを行うために必要なこと【再掲】 ⁃ 本番環境でオーバーヘッドが少なく安全にプロファイリングを実行できる か →Goにはpprofがある
⁃ どこにプロファイリング結果を保存するか ⁃ 保存したプロファイリング結果をどのようにして検索・抽出するか →これらを何とかしたい
profefe ▪ MirrativではprofefeというOSSを導入した ⁃ https://github.com/profefe/profefe ⁃ パブリッククラウドなど各社サービスを提供しているが、より柔軟な運用 をしたかった
profefe ▪ profefeの仕組み ⁃ Collector と Agent というコンポーネントがある
profefe ▪ Agent ⁃ 定期的にプロファイリングを実行し、Collectorに送信する • デフォルトでは1分おきに10秒間プロファイリングを実行 ⁃ アプリケーションに組み込んで使う •
⁃ 異なるインスタンスで同時にプロファイリングが実行されてシステム全体 の性能が劣化することがないように、ランダムにsleepを入れることで、プ ロファイリングの実行タイミングを分散するような工夫がされている
profefe ▪ Collector ⁃ プロファイルを受け取るサービス ⁃ プロファイルを保存するAPIと検索・抽出を行うAPIが提供されている • プロファイル保存時にlabelを指定することができ、プロファイルを検 索するときの条件に指定することができる
• 検索APIは検索条件にマッチしたpprofをmergeして返してくれる ⁃ プロファイルを保存するストレージは差し替えが可能になっており、AWS S3・Google Cloud Storageなどを選択することができる
profefe ▪ ミラティブでの運用例 ⁃ 性能劣化しているエンドポイントを見つける • p90を計測して、日次でチェックしている ⁃
profefeで該当期間のpprofを取得する • ⁃ go tool pprofで分析 •
まとめ ▪ GoはContinuous Profilingを実践しやすい環境が整っている ⁃ pprof ⁃ profefe ▪
We are hiring! ⁃ ミラティブでは高トラフィックなサービスの開発に挑戦したいバックエンド エンジニアを募集しています