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
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
tatsumack
April 15, 2022
Technology
0
880
Continuous Profiling in Go
Go Tech Talk【サイバーエージェント x ミラティブ】
の発表資料です。
tatsumack
April 15, 2022
Tweet
Share
Other Decks in Technology
See All in Technology
AzureでのIaC - Bicep? Terraform? それ早く言ってよ会議
torumakabe
1
530
Context Engineeringの取り組み
nutslove
0
340
15 years with Rails and DDD (AI Edition)
andrzejkrzywda
0
190
セキュリティについて学ぶ会 / 2026 01 25 Takamatsu WordPress Meetup
rocketmartue
1
300
Codex 5.3 と Opus 4.6 にコーポレートサイトを作らせてみた / Codex 5.3 vs Opus 4.6
ama_ch
0
150
超初心者からでも大丈夫!オープンソース半導体の楽しみ方〜今こそ!オレオレチップをつくろう〜
keropiyo
0
110
プロダクト成長を支える開発基盤とスケールに伴う課題
yuu26
4
1.3k
会社紹介資料 / Sansan Company Profile
sansan33
PRO
15
400k
[CV勉強会@関東 World Model 読み会] Orbis: Overcoming Challenges of Long-Horizon Prediction in Driving World Models (Mousakhan+, NeurIPS 2025)
abemii
0
130
配列に見る bash と zsh の違い
kazzpapa3
1
140
フルカイテン株式会社 エンジニア向け採用資料
fullkaiten
0
10k
外部キー制約の知っておいて欲しいこと - RDBMSを正しく使うために必要なこと / FOREIGN KEY Night
soudai
PRO
12
5.4k
Featured
See All Featured
Visualization
eitanlees
150
17k
Stop Working from a Prison Cell
hatefulcrawdad
273
21k
How People are Using Generative and Agentic AI to Supercharge Their Products, Projects, Services and Value Streams Today
helenjbeal
1
120
jQuery: Nuts, Bolts and Bling
dougneiner
65
8.4k
Collaborative Software Design: How to facilitate domain modelling decisions
baasie
0
140
Avoiding the “Bad Training, Faster” Trap in the Age of AI
tmiket
0
76
How To Stay Up To Date on Web Technology
chriscoyier
791
250k
Darren the Foodie - Storyboard
khoart
PRO
2
2.4k
Un-Boring Meetings
codingconduct
0
200
エンジニアに許された特別な時間の終わり
watany
106
230k
Building Experiences: Design Systems, User Experience, and Full Site Editing
marktimemedia
0
410
Between Models and Reality
mayunak
1
190
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! ⁃ ミラティブでは高トラフィックなサービスの開発に挑戦したいバックエンド エンジニアを募集しています