Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
監視・解析ツールから読み解く!トラブル対応&負荷対策
Search
Cygames, Inc.
PRO
February 24, 2017
Technology
6.6k
3
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
監視・解析ツールから読み解く!トラブル対応&負荷対策
2017/02/16 Developers Summit 2017
Cygames, Inc.
PRO
February 24, 2017
More Decks by Cygames, Inc.
See All by Cygames, Inc.
【CEDEC2026】Creative Approaches to Localizing the Dialects and Unique Speech of Umamusume: Pretty Derby Characters in English
cygames
PRO
4
27k
【CEDEC2026】コードレビュー支援ツール開発から学ぶ:LLMを用いた業務システムの実践的な運用設計と誤出力対策
cygames
PRO
0
1.2k
【CEDEC2026】『ウマ娘 プリティーダービー』 英語版のキャラクターの方言や口調をローカライズするための創造的アプローチ
cygames
PRO
3
1.3k
【CEDEC2026】次世代デジタルカードゲームのサーバー設計と運用 〜『Shadowverse: Worlds Beyond』の舞台裏~
cygames
PRO
2
2k
【CEDEC2026】派手さと見やすさは両立できる!『Shadowverse: Worlds Beyond』エフェクト・3D背景の超進化したビジュアル設計
cygames
PRO
1
1.8k
【CEDEC2026】『Shadowverse: Worlds Beyond』続編開発におけるUIデザイン・アニメーション演出の「超進化」 ~継承と挑戦を両立するデザイン手法~
cygames
PRO
3
5.1k
【CEDEC2026】『Relink』を拡張せよ - 『GRANBLUE FANTASY: Relink - Endless Ragnarok』の開発速度と品質を守るCI運用
cygames
PRO
1
280
【CEDEC2026】『GRANBLUE FANTASY: Relink - Endless Ragnarok』のバトル制作事例 ~最高のキャラゲーを目指して~
cygames
PRO
2
460
【CEDEC2026】アートとゲームデザインをつなぐVFX設計『GRANBLUE FANTASY: Relink - Endless Ragnarok』における表現と可読性の両立
cygames
PRO
1
1.3k
Other Decks in Technology
See All in Technology
Snowflakeのコスト最適化を支えるアーキテクチャ設計
ktatsuya
0
1.3k
20260906 「AWS運用入門」著者が教える、運用業務への生成AI活用入門
masaruogura
0
260
「図書館」という名前のままでいいのか -Code4Lib JAPANカンファレンス2026 アンカンファレンス報告- / Code4Lib JAPAN Conference 2026: Unconference Report
ykiyota
0
130
生成AIのテナント制御とシャドーMCP対策 | AIを"止めずに"、情報を守る
yukun
0
140
AI時代に顧客へ最速で価値を 届けるための試行錯誤 〜「AI × マネジメント」領域におけるmentoのケース〜
posterkeisuke
0
110
ASTを使って影響範囲を特定する
nealle
0
140
Where Is JetBrains AI Heading- — Central CLI, Air Alpha, and the Agentic Development Stack
x5gtrn
PRO
0
150
2026/09/10 Spring_Bootから_Jakarta_EE_MicroProfileへの移行
megascus
0
280
HRC_Frontend_Conference_Fukuoka_2026.pdf
ts020
0
170
スクラムで身についていた動き方を、XPで捉え直してみた
codmoninc
PRO
1
330
GuardDuty 検知対応を DevOps Agent で効率化しようとしている話 / GuardDuty Investigations with DevOps Agent
masahirokawahara
1
340
The Agent Builder Loop from Daily Work to OSS
minorun365
PRO
3
120
Featured
See All Featured
Accessibility Awareness
sabderemane
1
200
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
10k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
141
35k
Marketing to machines
jonoalderson
1
5.8k
Visual Storytelling: How to be a Superhuman Communicator
reverentgeek
2
650
Highjacked: Video Game Concept Design
rkendrick25
PRO
1
450
Reflections from 52 weeks, 52 projects
jeffersonlam
356
21k
Building Better People: How to give real-time feedback that sticks.
wjessup
370
20k
Bootstrapping a Software Product
garrettdimon
PRO
306
120k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
32
3k
Building a Scalable Design System with Sketch
lauravandoore
463
34k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
Transcript
© Cygames, Inc. 1 / 87
© Cygames, Inc. 2 / 87 ▪アジェンダ • 自己紹介 •
この講演で伝えたいこと • 負荷対策やトラブル対応 • ツール使用事例 • まとめ
© Cygames, Inc. ▪アジェンダ • 自己紹介 • この講演で伝えたいこと • 負荷対策やトラブル対応
• ツール使用事例 • まとめ 3 / 87
© Cygames, Inc. 4 / 87
© Cygames, Inc. ▪アジェンダ • 自己紹介 • この講演で伝えたいこと • 負荷対策やトラブル対応
• ツール使用事例 • まとめ 5 / 87
© Cygames, Inc. ▪この講演で伝えたいこと • トラブル対応と負荷対策の考え方 • ツールを使ったトラブル対応 • ツールを使った負荷対策
6 / 87
© Cygames, Inc. ▪トラブル対応と負荷対策 • トラブル対策でやりたいこと 不具合に気がつく 不具合対応速度を上げる • 負荷対策でやりたいこと
レスポンス速度を速める web、DB、キャッシュの負荷を下げる 安定運用 7 / 87
© Cygames, Inc. ▪トラブル対応でやりたいこと • いち早く気がつきたい 長く放置するといいことがない • 障害の切り分けをしたい 機器故障、プログラムの不具合
対応がぜんぜん違う • ある程度自動化したい ログを手動で探すのは時間がかかる… 8 / 87
© Cygames, Inc. ▪負荷対策でやりたいこと • レスポンス速度を速くしたい • ボトルネックの調査 プログラム、キャッシュ、DBなどなど どれが原因か切り分けたい
• 原因からの解決方法 9 / 87
© Cygames, Inc. ▪やりたいことをふまえて トラブル対応 負荷対策 踏み込みやすくするためのツールの使い方を説明し ていきます! 10 /
87
© Cygames, Inc. ▪アジェンダ • 自己紹介 • この講演で伝えたいこと • 負荷対策やトラブル対応
• ツール使用事例 • まとめ 11 / 87
© Cygames, Inc. ▪負荷対策・トラブル対応の必要性 Cygamesが掲げているもの • 最高のコンテンツを作る レスポンスなども最高のものにしたい • CS最優先
ユーザーのことを最優先に考え 不具合対応を素早く行う 12 / 87
© Cygames, Inc. ▪負荷対策・トラブル対応によくある事例 • リリースによる不具合 • 動作を早くしたい • 特定の動作だけ重い
他にも • もともと起きてる不具合が発覚 • リリースしたことによって重くなった など 13 / 87
© Cygames, Inc. ▪負荷対策・トラブル対応によくある事例 Cygamesで一般的に使っているサーバー系ツール • Munin • Kibana •
New Relic • Mackerel • XHProf 14 / 87
© Cygames, Inc. ▪Munin Munin Web、DB、cache 様々なサーバーの項目 がグラフィカルに見れ る 15
/ 87
© Cygames, Inc. ▪Kibana Kibana ログを収集して ログを解析するために様々な表示が出来る 16 / 87
© Cygames, Inc. ▪New Relic New Relic サーバーの処理時間などを 項目別に分析が出来る 17
/ 87
© Cygames, Inc. ▪Mackerel Mackerel 対象サーバー(複数)の項目を一覧で見ることが出来る 18 / 87
© Cygames, Inc. ▪XHProf XHProf PHPをAPIごとに詳細に分析する ことができる 各関数ごとの解析も可能 19 /
87
© Cygames, Inc. ▪負荷対策・トラブル対策によくある事例 • リリースによる不具合 Munin、Kibana、Mackerel • 潜在的な不具合が発覚 Kibana、Mackerel
20 / 87
© Cygames, Inc. ▪負荷対策・トラブル対策によくある事例 • リリースしたことによって重くなった Munin、Kibana、Mackerel、New Relic • 動作を速くしたい
New Relic、XHProf • 特定の動作だけ重い New Relic、XHProf 21 / 87
© Cygames, Inc. ▪アジェンダ • 自己紹介 • この講演で伝えたいこと • 負荷対策やトラブル対応
• ツール使用事例 • まとめ 22 / 87
© Cygames, Inc. ▪ツール一覧 ・Munin ・Kibana ・New Relic ・Mackerel ・XHProf
23 / 87
© Cygames, Inc. ▪ツール一覧 ・Munin ・Kibana ・New Relic ・Mackerel ・XHProf
24 / 87
© Cygames, Inc. ▪Munin サーバーの状態をまとめてみることができるツール いろいろな項目があり、ざっと見る分には便利。 更新までに時間がちょっとかかるので、詳細にみる ためには別なツールを使うことも。 25 /
87
© Cygames, Inc. ▪Munin よく見る項目 Apache accesses Load average CPU
usage Memory usage Load average MySQL Connections MySQL queries MySQL throughput Evictions Hit and misses Cached items web DB Memcache 26 / 87
© Cygames, Inc. ▪Munin 見た目はこんな感じ Day、week month、year などの表示期間を変えられ るので、日常と違う異常は 発見しやすい
27 / 87
© Cygames, Inc. ▪Munin メリット サーバーごとにグラフが見れる グラフで表示のため、異常に気が付きやすい デメリット 一台ずつの表示なので全台みるのが大変 グラフは5分毎にあがってるので瞬間的なグラフは丸まることがある
28 / 87
© Cygames, Inc. ▪ツール一覧 ・Munin ・Kibana ・New Relic ・Mackerel ・XHProf
29 / 87
© Cygames, Inc. ▪Kibana ログ収集ツール 設定したものを設定したように表示してくれる ・アクセスログ ・エラーログ ・Nodeのログ など収集している
30 / 87
© Cygames, Inc. ▪Kibana 31 / 87
© Cygames, Inc. ▪Kibana 32 / 87
© Cygames, Inc. ▪Kibana メリット いろんな項目を見たいようにカスタマイズできる テキストログなど、収集設定をすればある程度リアルタイムで見れる デメリット ログの取り込み設定をしないといけない 活用できるログを吐き出すように考えてプログラムする必要がある
33 / 87
© Cygames, Inc. ▪ツール一覧 ・Munin ・Kibana ・New Relic ・Mackerel ・XHProf
34 / 87
© Cygames, Inc. ▪New Relic サーバー単位での処理の解析ができる APIごとの処理時間の総数やスループット。 関数内でかかってる処理の詳細など調べられること ができる また
遅いAPIはトレースすることができる 35 / 87
© Cygames, Inc. ▪New Relic 36 / 87
© Cygames, Inc. ▪New Relic 37 / 87
© Cygames, Inc. ▪New Relic メリット サーバー単位で処理の比率が見ることができる クエリごとの重さも見ることができる デメリット ピックアップされた重い処理に関してはトレースできるが、全部の処理
にたいして細かくはやれない 38 / 87
© Cygames, Inc. ▪ツール一覧 ・Munin ・Kibana ・New Relic ・Mackerel ・XHProf
39 / 87
© Cygames, Inc. ▪Mackerel サーバーの状態がまとめてみれる すべてが一つのグラフで見れたりするので、一台だ け問題があるときなど、グラフが異常が発見しやす い 40 /
87
© Cygames, Inc. ▪Mackerel 41 / 87
© Cygames, Inc. ▪Mackerel メリット 各項目について全台チェックできる デメリット 対象台数が多ければ多いほど表示が重い 42 /
87
© Cygames, Inc. ▪ツール一覧 ・Munin ・Kibana ・New Relic ・Mackerel ・XHProf
43 / 87
© Cygames, Inc. ▪XHProf PHPコードが詳細に解析できる 関数の呼び出し回数、その関数の処理時間など。 メモリも見れるので、改善結果などの比較も容易。 44 / 87
© Cygames, Inc. ▪XHProf APIリストが並んでいる ※time usememは chrome extentionとして 自作して導入している。
45 / 87
© Cygames, Inc. ▪XHProf 46 / 87
© Cygames, Inc. ▪XHProf 47 / 87
© Cygames, Inc. ▪XHProf メリット APIを全部チェックできる 各関数を細かくチェックできるので、改修箇所を探すのが楽 デメリット 使うためにソースコードに手を入れる必要がある APIが全部上がってくるので、問題のAPIを探すのが大変
48 / 87
© Cygames, Inc. ▪事例のおさらい • リリースによる不具合 • 動作を早くしたい • 特定の動作だけ重い
49 / 87
© Cygames, Inc. ▪事例のおさらい • リリースによる不具合 • 動作を早くしたい • 特定の動作だけ重い
50 / 87
© Cygames, Inc. ▪リリースによる不具合 リリースによる不具合ってどんなの? プログラムのバグ 例)単純にプログラムがバグってる 機器トラブル 例)DBサーバーのコネクションがつまった 負荷トラブル
例)アクセス過多によりwebの処理速度低下 51 / 87
© Cygames, Inc. ▪リリースによる不具合 使うツール Munin Kibana Mackerel 52 /
87
© Cygames, Inc. ▪リリースによる不具合 前提条件 トラブルが起きていることに 気がつく! 一番はじめにやりたいこと 原因箇所の切り分け! 53
/ 87
© Cygames, Inc. ▪リリースによる不具合 どうやってツール使う? Munin Kibana Mackerel 54 /
87
© Cygames, Inc. ▪リリースによる不具合 どうやってツール使う? Munin Kibana Mackerel 55 /
87
© Cygames, Inc. ▪リリースによる不具合 意識してやっていること 日頃から各種数値をみる Apache access、LA Cpu、memory Mysql
queries、slow queries connectionsなどなど 日頃のグラフとは極端に違うグラフがでれば 何か起きている!! 56 / 87
© Cygames, Inc. ▪サーバーの状態のグラフ 一週間の推移図 どのあたりまで上がる とか、ルールがわかる。 例)リリース直後で急 にグラフが伸びると何 かまずいものがリリー
スされた(もしくは ユーザーがいっぱいア クセスしてる)など推 測できる。 57 / 87
© Cygames, Inc. ▪リリースによる不具合 どうやってツール使う? Munin Kibana Mackerel 58 /
87
© Cygames, Inc. ▪リリースによる不具合 意識してやっていること プログラムでログを残す DBにログを残す場合もあるが エラーログとしてテキストデータを出力している。 プログラムの不具合があるならば エラーログが吐かれているはずなので
いち早くそれを検知する! 59 / 87
© Cygames, Inc. ▪エラーログのキャッチ Dashboardで設定すれ ば、いろんなものがひと 目で見れる。 単純にapacheのエラー カウントやサーバーのエ ラーカウント、エラーロ
グを表示すれば今現在ど んなものが出ているかす ぐわかる 60 / 87
© Cygames, Inc. ▪リリースによる不具合 どうやってツール使う? Munin Kibana Mackerel 61 /
87
© Cygames, Inc. ▪リリースによる不具合 意識してやっていること サーバーの状態をちゃんと把握すること cpuやworkerの状態が把握できる 機器故障があればグラフですぐわかる! 62 /
87
© Cygames, Inc. ▪サーバーの状態 上記はcpuのグラフ いろいろな項目が設定しているサーバーを一覧でだせるので 何かトラブルがあればグラフに如実にでる 63 / 87
© Cygames, Inc. ▪リリースによる不具合 まとめ 異常を感じ取ることが大事 異常を判断できるようになる必要がある そのためには日頃グラフ等を見ておく 異常を感じ取れるように情報を増やしたい なので
ツールを使うと便利かつ早い! 64 / 87
© Cygames, Inc. ▪事例のおさらい • リリースによる不具合 • 動作を早くしたい • 特定の動作だけ重い
65 / 87
© Cygames, Inc. ▪負荷対策 理想 必要最小限のデータで 必要最小限の適切なコードで 処理をする 66 /
87
© Cygames, Inc. ▪負荷対策 あたりまえのことをやるだけ 67 / 87
© Cygames, Inc. ▪動作を早くしたい 重い処理をなくせば早くなる ボトルネックをちゃんと把握すること 処理が多い関数を把握する 回数が多いところを直せば 費用対効果が大きい! 68
/ 87
© Cygames, Inc. ▪動作を早くしたい どうやってツール使う? New Relic XHProf 69 /
87
© Cygames, Inc. ▪動作を早くしたい どうやってツール使う? New Relic XHProf 70 /
87
© Cygames, Inc. ▪New Relic 左下に関数ごとに時間 がかかってるリストが 出ている 多く時間を占めている ものほど費用対効果が
でかい 71 / 87
© Cygames, Inc. ▪動作を早くしたい どうやってツール使う? New Relic XHProf 72 /
87
© Cygames, Inc. ▪XHProf 各関数における処理時 間、使用メモリが追え るのでここから改修す る箇所を探す Incl.WallTimeと Excl.WallTimeを駆使す
ると関数内の処理が重 いのか その関数自体 の処理が重いのかもわ かる 73 / 87
© Cygames, Inc. ▪XHProf 上記のようにIncl.WallTimeを押せば重い順番にソートしてくれるので ポイントが見つけやすい 74 / 87
© Cygames, Inc. ▪XHProf 関数をクリックすれば、その関数が呼ばれている箇所 また、その関数内になんの関数があるかなど、詳細にデータが出てくる 気になる関数を調べることで 一個ずつ解析することができる 75 /
87
© Cygames, Inc. ▪動作を早くしたい まとめ New Relicでなおしたい関数を探す XHProfでなおす箇所を探す コードの直し方は色々あるけど、基本的には 必要最小限のデータで
必要最小限の適切なコードで処理 上記で問題ない 76 / 87
© Cygames, Inc. ▪事例のおさらい • リリースによる不具合 • 動作を早くしたい • 特定の動作だけ重い
77 / 87
© Cygames, Inc. ▪特定の動作だけ重い どうやってツール使う? New Relic XHProf 78 /
87
© Cygames, Inc. ▪New Relic Transactions項目 を開くと右下に重 かった処理が表示 される これをクリックす
ると詳細な表示に なる 79 / 87
© Cygames, Inc. ▪New Relic Popupの中のtrace details項目を開く と左のようなリスト が表示される 表示されてるリスト
の中で直したいとこ ろを探す 80 / 87
© Cygames, Inc. ▪特定の動作だけ重い どうやってツール使う? New Relic XHProf 81 /
87
© Cygames, Inc. ▪XHProf 動作を早くしたときのXHProfの使用方法と同じ 基本的に直したいAPIを表示させてから中身を分析 後はひたすら表示内容とソースを見比べて 無駄な処理を省く 82 /
87
© Cygames, Inc. ▪特定の動作だけ重い まとめ APIが決まっているなら、XHProfで対象のAPIを解 析する 重いAPIがあったところから直していくなら New Relicで重かったAPIを分析するといい
直したい箇所が先か 重かったところを直したいか でツールを使い分ける! 83 / 87
© Cygames, Inc. ▪注意事項 ツールの使い方はあくまで一例 もっと別な使い方もあると思われる。 また場合によっては使わなくてもいい場面もある。 利用用途に応じたツールの使い方をしてください! 84 /
87
© Cygames, Inc. アジェンダ • 自己紹介 • この講演で伝えたいこと • 負荷対策やトラブル対応
• ツール使用事例 • まとめ 85 / 87
© Cygames, Inc. まとめ ツールを使えばなんでも出来るわけではない ツールを使うと時間が短縮できる ツール自体は目的によってしっかり使い分ける なぜツールを使うのか? 便利であり、楽だから! 空いた時間でまた改良をしていって
最高のコンテンツを作りあげていく! 86 / 87
© Cygames, Inc. ご清聴ありがとうございました! 87 / 87