ISUCON10に初参戦してみた

ゴリラさんと出てみようと話していたものの、申し込みのタイミングを逃してオワタと思っていたら@inductorさんに拾ってもらい、カンガルーと犬とゴリラとしてなんとかISUCON10に参加することができました。

当日は開始ちょっと前*1にDiscordとGoogleドキュメントでコミュニケーションすることを決め、 開始直後は

  • 環境を整備する
  • アプリを見る
  • ドキュメントを見る

といった感じで役割分担。

30分くらい経って、これからはベンチマークを走らせながらどこから手を付けるか考えようと思っていましたがトラブルのためなかなか実行できず、New Relicの設定をしたあとはしばらくWebアプリをポチポチしたりホストの中をウロウロしたりしていました。

ベンチマークが走ってからは、

  • 検索系
    • インデックス
    • DB分割
      • 最終的にはApp1台 + DB2台に
  • nazotte
    • LIMITでループを抜ける
    • それ以上のチューニングは結局できず...
  • low_priced
    • 静的に返したり、キャッシュしたり
  • botからのアクセス
    • nginxで弾く

をなんとかすることに。
これでスコアが480→805になったのがだいたい19:00で、そこから都合により20:20くらいまで離席...

戻ってきたタイミングで検索系がさらに最適化されてスコアは1280まで伸びましたが、最終的には1244で競技終了の21:00になりました。

以前に参加した社内ISUCONでは個人でもチームでもスコアアップに繋がるようなことがほとんどできなかったので*2、それに比べれば多少はできるようになったかもしれませんが、まだまだ力不足*3なことを痛感しました。。。

*1:12:20開始になったので11:50くらい

*2:初期スコアからほぼ変わらなかったはず

*3:特にMySQL、そしてインフラは完全にinductorさん任せ!