ISUCON13に出てきた

ISUCON13の参加権付き個人スポンサーになったので1人で出てきた。
最終スコアは28,327。

事前準備

やろうやろうと思っていたけど結局何もせずに望むことになった

やったことをログを見ながら羅列

  • とりあえず言語をRubyにした
  • インスタンスが3台あったからとりあえずdbを別にした
    • ちょっと作業に手間取る…
    • DNSもdbで管理してたのでpdns周りの設定もかえなくちゃだった
  • 後々appを2台にするつもりだったので、事前にnginxの設定を確認
    • 以降は確認のしやすさなどを重視してapp1台、db1台を前提にして触ってた
  • インデックスはったりN+1つぶしたり
  • newrelicを入れてみたりした
    • 使うのが久しぶりすぎたのと、DB触るとこがActiveRecordじゃなかったのであんま使い熟せなかった…
  • ここらへん(15時ごろ)でスコアは 14,949 が出てた
  • コード書き換えてスコアが微減(14,231)したりしたけど、気にせず進めてた
  • iconのhash計算毎回してるのが無駄だからdbに入れたらスコアは 19,268 に
    • 画像nginxから返したほうがいいよなと思いつつ、そこは手がたりないので後回しにした
  • 画像周りでHTTP ステータス304を返せばいいというのをようやく見つけて入れてみたけど上手くいかなかったのでrevert
  • 引き続きN+1つぶしたりして21,210を出した
  • さらに出来ることはないかなーといろいろ試したけどスコアは伸びず
  • 時間もせまってたのでappを2台に増やしてベンチを回す

ふりかえり

  • よかったこと
    • とりあえず全く何もできなかったわけではなかった
    • やはりISUCONは楽しい
  • よくなかったこと
    • 仕様を把握できてなくて、何をすればスコアを上げていけるのかってのがピンと来てなくて普通のチューニングばっかになってた
    • DNS周りは本当に全くわかってない
    • モニタリングが出来てなくてサーバーの振り分けとかに根拠がなかった
  • その他
    • 1人チームは手が足りない、自分がわからないことが来ると詰むなどの問題がありつつ、好きにデプロイベンチ回し、構成変更ができるのは気が楽だった