TechFeed Experts Night 2022-06-07 登壇資料
Toshiaki Baba Twitter: @netmarkjp
株式会社X-Tech 5 取締役CTO https://x-tech5.co.jp/
株式会社iCARE技術顧問(インフラ) https://dev.icare.jpn.com/tech_adv/
TechFeed Experts Night 2022-06-07Toshiaki BabaTwitter: @netmarkjp株式会社X-Tech 5 取締役CTOhttps://x-tech5.co.jp/株式会社iCARE技術顧問(インフラ)https://dev.icare.jpn.com/tech_adv/しつこくじわじわパフォーマンスチューニングDisclaimer● おもに「サーバサイドのパフォーマンス」を取り扱います● 「サービスが遅い・重い」と言ったときは、主に「レイテンシが高い」という意図です● モニタリングツールの基本知識がDatadog(とAmazonCloudWatchと、Nagios・Cacti)に偏っているので、暗黙のうちにそれらを前提にして発言するかもしれません
View Slide
担当:Chapter 1 チューニングの基礎知識2
「いれたはいいけどうまく使えていないDatadog」なんとかします:X-Tech5の「OBServe」3OBServe - 株式会社X-Tech5https://x-tech5.co.jp/service/observe/
パフォーマンスでよくある問題と対策4【問題になること】パフォーマンス問題は致命傷にならないと気づかない【対策】継続的にしつこくモニタリングするパフォーマンスをモニタリングできるようになる課題を効率よく見つけられるようになる致命傷になる前に発見できるようになる
パフォーマンスをモニタリングする5パフォーマンスをモニタリングできるようになる課題を効率よく見つけられるようになる致命傷になる前に発見できるようになる
前提知識:モニタリングSaaSの多くはメトリクス中心6ログメトリクスログAPMAPM正規化マスク変換...メトリクスアラートダッシュボード:コンソール
われわれの武器:ログとAPM● ログ○ その要素の処理単位で計測・確認できる○ プログラムの処理インターフェース単位で扱う(例:アクセスログならURL)○ 全量調査なので「特定のコレ」を見つけ出せる● APM(Application Performance Monitoring)○ 複数要素にまたがって一気通貫で計測・確認できる ※マイクロサービスじゃなくても○ プログラムの内部情報を扱える(例:コントローラのメソッドや呼び出したときの引数)○ サンプリング調査なので「多くの母数を持つ前提で傾向を把握する」のが前提7お勧め:「よくわからないなら、まずはAPM」
アプリケーションにAPMを追加する● 「計装する」(Instrument)と呼ぶ● SaaSベンダのライブラリ or OpenTelemetryを使う○ よくわからないならSaaSのドキュメントの通りにSaaSのライブラリを使ってSaaSのサポートをうけるのがよい○ OpenTelemetryで計装しておくと後からSaaSが変更しやすい● 利用しているプログラム言語やフレームワーク・ライブラリによっては、追加でライブラリを読み込む程度○ Python、Ruby、Java、Node(JavaScript/TypeScript)あたりはたぶん楽○ Goは少しコード修正が必要かも8アプリケーションプログラムlibモニタリングエージェントモニタリングSaaS
効率よく見つけたい9パフォーマンスをモニタリングできるようになる課題を効率よく見つけられるようになる致命傷になる前に発見できるようになる
効率よく見つけたい:目星をつける● ユーザ、カスタマーサクセス担当、プロダクトオーナーに聞くと「ここが!」というのが出てくることが多いので、まずはそこからがベスト● ISUCON本ではアクセスログをalpで分析● DatadogならAPMのServicesで分析(APMをもとにしたメトリクス)○ ISUCONのように「リソース逼迫の要因を見つけたい」状況ではTOTAL TIMEに着目○ REQUESTSが一定以上ありP50やP90レイテンシが高いものに着目していくとよい10
見つけたら● 短期・中期で傾向が変化したか確認する● レイテンシの分散を確認して狙い所を定める11
見つけたらTraceを詳しく見る● 横に長い箱はどれか● 箱(Span)の数、繰り返しパターン● レイテンシの分散を確認して狙い所を定める12https://datadog-docs.imgix.net/images/tracing/index/ConnectLogsWithTraces.b1310bb21582381d3bfb1ec7dd47031f.png
継続的にしつこくモニタリング13パフォーマンスをモニタリングできるようになる課題を効率よく見つけられるようになる致命傷になる前に発見できるようになる
継続的にしつこく● 定点観測を確立しましょう○ 習慣の力も使うが、土台と詰めは『根性と執念』● なんだかんだ言ってみんなできない(定着に課題がある)からサービス化したのが「OBServe」● お問い合わせいただくと、ばばが出てきますhttps://x-tech5.co.jp/service/observe/14
おまけ:自己紹介馬場俊彰(ばばとしあき) Twitter: @netmarkjp株式会社X-Tech5 取締役 CTO、株式会社iCARE技術顧問運用エンジニアリング/DevOps/SRE/コンサルティング/組織構築/事業運営...電気通信大学人間コミュニケーション学科(2004年卒)→社会人(SCC→ハートビーツ→X-Tech5)→産業技術大学院大学(AIIT)情報アーキテクチャ専攻(2011年卒)主な守備範囲:Webシステムのインフラ・ミドルウェア全般、モニタリング、チューニング、プログラミング(Python、Go)15Amazon著者ページ https://www.amazon.co.jp/%E9%A6%AC%E5%A0%B4-%E4%BF%8A%E5%BD%B0/e/B004Y4SUBY