Upgrade to Pro — share decks privately, control downloads, hide ads and more …

しつこくじわじわパフォーマンスチューニング

 しつこくじわじわパフォーマンスチューニング

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/

Toshiaki Baba

June 05, 2023
Tweet

More Decks by Toshiaki Baba

Other Decks in Technology

Transcript

  1. 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/ しつこくじわじわパフォー マンスチューニング Disclaimer • おもに「サーバサイドのパフォーマンス」を取り扱います • 「サービスが遅い・重い」と言ったときは、主に「レイテンシが 高い」という意図です • モニタリングツールの基本知識がDatadog(とAmazon CloudWatchと、Nagios・Cacti)に偏っているので、暗黙のう ちにそれらを前提にして発言するかもしれません
  2. われわれの武器:ログとAPM • ログ ◦ その要素の処理単位で計測・確認できる ◦ プログラムの処理インターフェース単位で扱う(例:アクセスログならURL) ◦ 全量調査なので「特定のコレ」を見つけ出せる •

    APM(Application Performance Monitoring) ◦ 複数要素にまたがって一気通貫で計測・確認できる ※マイクロサービスじゃなくても ◦ プログラムの内部情報を扱える(例:コントローラのメソッドや呼び出したときの引数) ◦ サンプリング調査なので「多くの母数を持つ前提で傾向を把握する」のが前提 7 お勧め:「よくわからないなら、まずはAPM」
  3. アプリケーションにAPMを追加する • 「計装する」(Instrument)と呼ぶ • SaaSベンダのライブラリ or OpenTelemetryを使う ◦ よくわからないならSaaSのドキュメントの通りにSaaSのライブラリを使ってSaaSのサポート をうけるのがよい

    ◦ OpenTelemetryで計装しておくと後からSaaSが変更しやすい • 利用しているプログラム言語やフレームワーク・ライブラリによっては、追 加でライブラリを読み込む程度 ◦ Python、Ruby、Java、Node(JavaScript/TypeScript)あたりはたぶん楽 ◦ Goは少しコード修正が必要かも 8 アプリケーション プログラム lib モニタリング エージェント モニタリングSaaS
  4. おまけ:自己紹介 馬場俊彰(ばばとしあき) Twitter: @netmarkjp 株式会社X-Tech5 取締役 CTO、株式会社iCARE技術顧問 運用エンジニアリング/DevOps/SRE/コンサルティング/組織構築/事業運営... 電気通信大学人間コミュニケーション学科(2004年卒) →社会人(SCC→ハートビーツ→X-Tech5)

    →産業技術大学院大学(AIIT)情報アーキテクチャ専攻(2011年卒) 主な守備範囲:Webシステムのインフラ・ミドルウェア全般、モニタリング、 チューニング、プログラミング(Python、Go) 15 Amazon著者ページ https://www.amazon.co.jp/%E9%A6%AC%E5%A0%B4-%E4%BF%8A%E5%BD%B0/e/B004Y4SUBY