kavo’s diary

備忘録

ISUCON13(2013)参加記録

今年は2名で参戦。おおよそ22000点くらいが最高スコアだった。

https://github.com/shimodatkh/2023-11-25-isu13

決めていたこと

  • pproteinで計測する
  • go-callvisでコールグラフを見る
  • コードはローカルで書いてmainにpush

流れ

  • 初回3000点くらいだった
  • git周りミスっててリポジトリ作り直したり権限いじったり
  • port番号のミスにハマる。pproteinでprofとalpが見えるようになる。
  • sqlはスペックのせいかslpがインストールできず見れなくて、諦めて競技サーバでptqueryを手打ちして凌ぐ
  • go-callvis動かすと計測サーバがスペックのせいか無反応になってしまうので諦め。ほかサーバではPATHがうまくいかなくて諦め。悲しい・・・
  • 12時頃インデックス貼って6000点くらい
  • getLivestreamStatisticsHandlerのSQLをまとめようとするが失敗。ここはgithub PRでやったのでrevertしやすかった
  • このあたりでプロファイラにsha256.Sum256が目立つ状況になっていたので、hashをテーブルに保存するように修正することにした
  • 修正したがbenchmark timeoutでなんだこれ?となる。実はベンチマーカーに障害が起きていた
  • しかし、ベンチマーカー障害解消の周知後もbenchmark timeoutが続き、原因がわからない。ただweb画面にアイコンが出なくなっていてアプリがおかしくなっていることはわかっていた
  • 結局右往左往したあとrevertした。見直しながら1つずつ入れていくと、型変換ミスに気づいた
  • db:"name"忘れ
  • fillLivestreamResponse N+1改善
  • 17:12 13,188点 UserRankingのN+1改善
  • SetMaxOpenConns(50)
  • 17:32 21,120点 計測系外す

振り返り

  • 今年はあまり素振りができず、計測環境が整うまでにかなり手間取った
  • rLoginがブチブチ切れて辛かった。keepalive設定を思いつくまで結構かかった
  • 計測サーバ、本番用にはケチらずもっといいスペックに変えておけばよかった
  • revertするかも・・・と思ってるときはgithub PRでやるとrevertがGUIでできてやりやすかった
  • copilotとても有用
  • 切り戻しの判断が遅かったかも。もっと切り戻し判断をシステマチックにしてみたい
  • アプリログを見るのが遅かった。見やすい状態をつくれていなかった