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
最近の若者はsshしないらしいですよ / isu-isu-h
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
ikura-hamu
December 23, 2023
770
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
最近の若者はsshしないらしいですよ / isu-isu-h
https://github.com/reactive-futakotamagawa/isu-isu-h-13
https://trap.jp/post/2047/
ikura-hamu
December 23, 2023
More Decks by ikura-hamu
See All by ikura-hamu
Goコンパイラを作ってGoをもっと理解する / Build a Go compiler to better understand Go
ikura_hamu
0
110
ゲーム大量生産サークルを支えるゲーム管理プラットフォーム / Supporting a High-Output Game Development Circle with a Game Management Platform
ikura_hamu
1
150
traP の部内 ISUCON とそれを支えるポータル / PISCON Portal
ikura_hamu
0
470
Featured
See All Featured
Ecommerce SEO: The Keys for Success Now & Beyond - #SERPConf2024
aleyda
1
2.2k
Agile Leadership in an Agile Organization
kimpetersen
PRO
0
310
Tell your own story through comics
letsgokoyo
1
1.1k
Public Speaking Without Barfing On Your Shoes - THAT 2023
reverentgeek
1
650
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.9k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
32
3.1k
Mobile First: as difficult as doing things right
swwweet
225
10k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
6.2k
Intergalactic Javascript Robots from Outer Space
tanoku
273
28k
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
How to make the Groovebox
asonas
2
2.5k
Stop Working from a Prison Cell
hatefulcrawdad
274
21k
Transcript
最近の若者はssh しない( する) らしいですよ @ikura-hamu / traP ISUCON LT
自己紹介 いくら・はむ (@ikura-hamu) 東京工業大学 学士2 年 Go (サーバーサイド) ISUCON13 は「リアクティブ二子玉川~♪ 」とし
て初めて出場しました。 2023/12/23 traP ISUCON LT 2 / 20
今日話す内容 ISUCON 用ツール群 「isu-isu-h 」 https://trap.jp/post/2047/ 2023/12/23 traP ISUCON LT
3 / 20
ISUCON で、何してますか? 2023/12/23 traP ISUCON LT 4 / 20
ISUCON で、何してますか? 高速化のために改善 それはそう 本質 改善以外は? ツール導入 計測 デプロイ などなど…
2023/12/23 traP ISUCON LT 5 / 20
ISUCON で、何してますか? 高速化のために改善 それはそう 本質 改善以外は? ツール導入 計測 デプロイ などなど…
ここ、もったいなくないですか? 2023/12/23 traP ISUCON LT 6 / 20
isu-isu-h 出現前の作業 場所 やること 1 手元のターミナル commit 、push 2 問題サーバー
各サーバーに ssh して pull 、設定ファイルの反映 (Makefile) 3 問題サーバー いろいろビルド、再起動 4 ブラウザ ベンチマーク回す 5 問題サーバー プロファイラ(pprof) を動かす 6 問題サーバー CPU などのメトリクスを眺める 7 問題サーバー スローログ、アクセスログをまとめて Discord に送る 8 ブラウザ pprof の結果を見る 9 ブラウザ、Discord 、エディタ … 計測結果を踏まえて改善する 2023/12/23 traP ISUCON LT 7 / 20
isu-isu-h 出現前の作業 場所 やること 1 手元 commit 、push 2 サーバー
各サーバーに ssh して pull 、設定ファイルの反映 3 サーバー いろいろビルド、再起動 4 ブラウザ ベンチマーク回す 5 サーバー プロファイラ(pprof) を動かす 6 サーバー CPU などのメトリクスを眺める 7 サーバー スローログ、アクセスログをまとめて Discord に送 る 8 ブラウザ pprof の結果を見る 9 たくさん 計測結果を踏まえて改善する 問題点 たくさんあるサーバーごと に ssh 接続してコマンドを 実行する必要がある サーバー間違いが発生 するかも 改善するときに見る場所が 散らばる スロークエリとアクセ スログは Discord pprof はブラウザ 2023/12/23 traP ISUCON LT 8 / 20
思想 ISUCON は入れた改善が多ければ多いほどいい 改善と直接関係ない作業は極力減らしたい ⇒ ツールを作ろう 2023/12/23 traP ISUCON LT
9 / 20
isu-isu-h 1. デプロイを 1 コマンドで 2. 見たい情報は全部ブラウザで を実現して、 改善サイクルのスピードを上げる ためのツール
ansible と observer の 2 つに大きく分けられる 2023/12/23 traP ISUCON LT 10 / 20
デプロイを 1 コマンドで ansible を使う 初動 計測で用いるツールの導入 Git リポジトリのセットアップ 設定ファイルのコピー
2023/12/23 traP ISUCON LT 11 / 20
デプロイを 1 コマンドで ansible を使う デプロイ ブランチを指定して GitHub から pull
設定ファイルの反映 MySQL 、nginx などのミドルウェア再起動 アプリのビルド、再起動 ログローテーション 2023/12/23 traP ISUCON LT 12 / 20
見たい情報を全部ブラウザで メトリクス、ログ確認 ⇒ Grafana Prometheus を使って node_exporter 、systemd_exporter からメトリクスを取ってきて、 Grafana
で表示した。 Promtail で systemd のログを送り、 Loki に貯めてブラウザで見れるよう にした プリントデバッグで活躍。 2023/12/23 traP ISUCON LT 13 / 20
見たい情報を全部ブラウザで 計測結果確認 ⇒ pprotein (NaruseJun 製ツール) スローログ (slp) アクセスログ (alp)
pprof を見れるツール。 これを改造して pt-query-digest も見れるようにした。 めっちゃ使いやすかったです。ありがとうございます。 2023/12/23 traP ISUCON LT 14 / 20
見たい情報を全部ブラウザで データベース操作 ⇒ adminer MySQL をブラウザから操作する。インデックスを貼ったり EXPLAIN を 実行したりするのに使った。 2023/12/23
traP ISUCON LT 15 / 20
isu-isu-h が あらわれた ! 場所 やること 1 手元 commit 、push
2 手元 ansible でデプロイ 3 ブラウザ ベンチマーク回す 4 ブラウザ いろいろな計測結果を見る 5 ブラウザ/ エディタ 計測結果を踏まえて改善する 変わったところ ベンチマークを回すまでの 過程がシンプルに 使う場所が「手元のターミ ナル」「ブラウザ」「エデ ィタ」だけ ssh して行う作業が無くな った ( ツール名の由来) 2023/12/23 traP ISUCON LT 16 / 20
isu-isu-h を作ってよかったこと 初動(~GitHub リポジトリ に設定済みのファイルがす べて上がっている状態)ま で15 分 見る場所が減るのは想像以 上に楽
ベンチマークを回すまでの 手間が少ないので、気軽に 回せる いろんな技術にちょっとず つ詳しくなった ansible Docker 、Docker Compose Grafana 、Prometheus 、 Loki ssh ( 結局内部では ssh している) などなど 2023/12/23 traP ISUCON LT 17 / 20
isu-isu-h のよくないところ 管理しにくい 「当日までに動けばいいや」で作ってたのでコードが読みにくい チームメンバーのうち自分しか構成が分からない 一部設定がURL 依存 脳内ドキュメント 2023/12/23 traP
ISUCON LT 18 / 20
isu-isu-h のよくないところ 管理しにくい 「当日までに動けばいいや」で作ってたのでコードが読みにくい チームメンバーのうち自分しか構成が分からない 一部設定がURL 依存 脳内ドキュメント ツールづくりに夢中になって練習できなかった 2023/12/23
traP ISUCON LT 19 / 20
来年は isu-isu-h で たくさん練習して 勝つ! GitHub reactive-futakotamagawa/ isu-isu-h-13 2023/12/23 traP
ISUCON LT 20 / 20