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

ISUCONに初参加して40位だった話

Sponsored · Ship Features Fearlessly Turn features on and off without deploys. Used by thousands of Ruby developers.
Avatar for mo124121 mo124121
December 18, 2024

 ISUCONに初参加して40位だった話

Avatar for mo124121

mo124121

December 18, 2024
Tweet

Other Decks in Programming

Transcript

  1. 事前準備(1)  2か月前から開始  たくさん解いて雰囲気をつかむ  ISUCON 13 https://github.com/mo124121/isucon13-try 

    Go  Private-isu(ISUCON本のやつ) https://github.com/mo124121/private-isu-try  Go  ISUCON 13 https://github.com/mo124121/isucon13-try-rust  Rust  ISUCON 12予選 https://github.com/mo124121/isucon12-qualify-try  Rust  ISUCON 11予選 https://github.com/mo124121/isucon11-qualify-try  Go  記事を眺めてよいやり方を知る (pprotein, トレース, tailscaleあたりはこの辺から)  ISUCON13 1位 https://zenn.dev/tohutohu/articles/923bdf5dcd73af  ISUCON13 4位 https://blog.p1ass.com/posts/isucon13/  pprotein 解説 https://zenn.dev/team_soda/articles/20231206000000 5
  2. 事前準備(2)  デプロイの方法を固める  8時間、一瞬 → どれだけ効率よく開発して、改善を仕込めるかが勝負 → デプロイを確実にやる方法を準備 

    Ansibleを基本に構成  上位勢はgit+シェルスクリプトっぽいので、こちらもよかったかも  テレメトリの取得  「推測するな 計測せよ」 → 目隠しで改善はできない → 必要な情報をちゃんと見れるように準備  専用のリポジトリを作成 + 監視用のインスタンスを外部に準備 https://github.com/mo124121/isucon-o11y  各種ツールを仕込む  ログ pprotein  メトリクス Prometheus + node exporter + process exporter  netdataを使っている方も多くてそちらもよさそう  トレース jeager  開発ツールの整備  監視対象のポートをあれこれ開けたい  Cloud formationでデプロイするリソースをいじるのはまずそう(env checkで落ちて失格?)  tailscale(P2P VPN)  DBをGUIで眺めたい  DBeaver (+ DBの設定@本番) (PHPMyAdminも試したが手元だと超遅かったので切り替え) 6
  3. 当日の動き  あんまり覚えてない…改善はコミットログを見てください  https://github.com/Akijin007/isucon14  主な担当  初動のcloud formationデプロイとか

    計装関係の設定とか  Chiを想定してなかったのでトレースができず…  クッソ重いクエリの修正(なおデバッグで沼った)  インメモリキャッシュの実装  DBの分離(なお失敗) 7
  4. 振り返り  初参加で結構いいスコア・順位  ISUCONは準備は大事で、適切な準備ができた感ある  改善も計測してわかった内容を着実にやればOK  何より残りメンバー2名に恵まれた 

    Goの実装力が足りない  静的解析が有効に機能しない場所でバグりまくり、どうしたらいい?(DBまわり、sync.Mapまわり)  このあたりはRustの方がよかった?ただDBは厳しそう  チーム練が足りなかった  諸般の事情によりチームが決まったのが本番1週間ちょっと前  シナリオ分析、わからない  スコアに効く改善は何か?は単なるボトルネック分析では見えてこない  1位になるには(ボトルネックの対処ができたうえで)もう一歩分析のアプローチ(あるいはエスパー力)が必要 8