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
900
Continuous Profiling in Go
Go Tech Talk【サイバーエージェント x ミラティブ】
の発表資料です。
tatsumack
April 15, 2022
Tweet
Share
Other Decks in Technology
See All in Technology
JEDAI認定プログラム JEDAI Order 2026 受賞者一覧 / JEDAI Order 2026 Winners
databricksjapan
0
400
「捨てる」を設計する
kubell_hr
0
440
GitHub Advanced Security × Defender for Cloudで開発とSecOpsのサイロを超える: コードとクラウドをつなぐ、開発プラットフォームのセキュリティ
yuriemori
1
110
Navigation APIと見るSvelteKitのWeb標準志向
yamanoku
2
130
Physical AI on AWS リファレンスアーキテクチャ / Physical AI on AWS Reference Architecture
aws_shota
1
180
タスク管理も1on1も、もう「管理」じゃない - KiroとBedrock AgentCoreで変わった“判断の仕事”
yusukeshimizu
0
140
なぜarray_firstとarray_lastは採用、 array_value_firstとarray_value_lastは 見送りだったか / Why array_value_first and array_value_last was declined, then why array_first and array_last was accpeted?
cocoeyes02
0
270
Embeddings : Symfony AI en pratique
lyrixx
0
410
私がよく使うMCPサーバー3選と社内で安全に活用する方法
kintotechdev
0
140
「お金で解決」が全てではない!大規模WebアプリのCI高速化 #phperkaigi
stefafafan
5
2.4k
夢の無限スパゲッティ製造機 #phperkaigi
o0h
PRO
0
390
Datadog で実現するセキュリティ対策 ~オブザーバビリティとセキュリティを 一緒にやると何がいいのか~
a2ush
0
170
Featured
See All Featured
So, you think you're a good person
axbom
PRO
2
2k
Why Mistakes Are the Best Teachers: Turning Failure into a Pathway for Growth
auna
0
100
Have SEOs Ruined the Internet? - User Awareness of SEO in 2025
akashhashmi
0
300
How Software Deployment tools have changed in the past 20 years
geshan
0
33k
Context Engineering - Making Every Token Count
addyosmani
9
780
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.4k
Introduction to Domain-Driven Design and Collaborative software design
baasie
1
680
sira's awesome portfolio website redesign presentation
elsirapls
0
200
Public Speaking Without Barfing On Your Shoes - THAT 2023
reverentgeek
1
350
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
11
870
From Legacy to Launchpad: Building Startup-Ready Communities
dugsong
0
190
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
130k
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! ⁃ ミラティブでは高トラフィックなサービスの開発に挑戦したいバックエンド エンジニアを募集しています