🪑

ISUCON13に参加した

2023/12/03に公開

TL;DR

  • ISUCON13に参加した
  • 13000点くらいだった (参考までに初期ベンチ3690 、優勝チームは46万くらい)
  • ansibleでツール類のインストールと自動デプロイをした
  • 楽しかったのでまた参加したい

ISUCON13に参加した

チーム名 respawn で、一人チームでISUCON13に参加しました。

ISUCONは、Iikanjini Speed Up Contest です。
Webアプリを早くするコンテストです。
ISUCONで検索すると大量にでてくるので詳しくは検索してみるのが良いと思います。
https://isucon.net/

事前にやったこと

  • あらかじめansibleスクリプトを準備しておきました
    • 初動の必要なツール群のセットアップ等
      • pt-query-digest とか alp とか必要なツールを全サーバーにインストール
    • デプロイ
      • app, db, nginx ごとにデプロイ
      • ログの削除をしてから再起動
      • 必要ファイルを配置 → ログ削除 → サービス再起動

ansibleスクリプトを使うことで、初期セットアップもデプロイもコマンド一つで、全台に対して完了して非常に楽でした。
これは準備して本当によかったと思っています。

当日やったこと

  • アイコン画像をファイルに書き出して、ハッシュの前計算、キャッシング
  • dns固定サブドメイン(pdnsのBINDモードを使って、固定のIPを返すようにして、MySQLを使わないように)
  • インデックス貼る、インデックス貼る、インデックス貼る(pt-query-digestの上位のクエリを全部explainしてインデックスなかったら貼るを繰り返しました)
  • N+1の解消
    • ユーザーごとにリアクションやチップの計算をしていた部分
    • タグから配信情報を取ってくる部分

反省点

  • 初見のpowerdnsに時間を使いすぎた
  • マシン2台しか使えてない
  • マニュアル読む (整合性テストが落ちる理由がわからなくて時間を溶かした)

まとめ

初期スコア以上のスコアが取れたので良かった。
初期セットアップとデプロイの自動化は、非常に楽になるので準備してよかった。
楽しかったのでまた参加したい。

Discussion