Tatsuya Oiwa About Archive Feed Github Twitter

ISUCON5の思い出

「八潮パークタウン」というチーム名でISUCON5予選に参加した。メンバーは @takady7 @muratayusuke @tatsuyaoiw の3人。ちなみに、八潮パークタウンの港湾沿いは春になると桜が咲いて綺麗なのでおすすめ。

結果は予選通過ならず。当日何やったかとかはもうすでに @takady7ブログに色々書いてくれてるんで、ここではざっくり感想とか思いついたことを書き連ねていく。

  • 予習めちゃ大事。去年のISUCON予選のイメージが配られたから、それ使って大体どの辺勉強したほうがいいとかあたりをつけておく。過去の傾向を見た感じだと、SQLとオンメモリストレージとリバースプロキシの3つを勉強しておくのが特に重要だと思った。
  • 事前に使いそうなコマンドや設定はGithubとかにメモしてコピペできるようにしておく。
  • Gitのプライベートレポジトリ作っておく。Githubのプライベートレポジトリは有料なので無料のBitBucket使った。
  • 使用言語あらかじめ決めておく。今回はメンバー決まった時点でRubyで良いよねってなって、時間に余裕があったら一人でNodeやろうかなと思ってたけど、当日になってNodeの参考実装が提供されないと知り、競技中は主にコーヒー入れたりお昼ご飯作ったりすることに専念した。
  • 朝は時間に余裕持って集合する。モニターのセットアップとかで無駄に時間かかった。
  • SlackとかLINEとかのスマホの通知はオフにしておく。
  • リモートで参加したチームもあったっぽいけど、一箇所に集まったほうがコミュニケーションとるの楽だしいいと思う。あと座席も向かい合って座るとかじゃなく、横一列になってお互い画面見ながらのほうが何やってるか把握できて良い。
  • 競技のレギュレーションの読み込みとコードリーディングは最初にがっつり時間とってやったほうがいいのかも。一応今年のISUCONのルールでは、最初に規定の点数を突破した1チームはその時点で予選を通過できることになっていて、それ狙いで色々すっ飛ばして事前にあたりをつけておいたインフラの設定とかをやっちゃうのも戦略としてはアリなのかもしれない。が、そこでもし1位通過逃すと、後になってもっと優先度の高いチューニングポイントに気づいたりして結果最終スコアの勝負で勝てなくなる。
  • アクセスログ解析、コードのプロファイリング、CPU, Memory, I/O等のリソース監視、Slow Queryの確認は必須。これやらずに適当にコード読んで変な実装見つけてその場で直してとかやるよりも、よりインパクトのある部分の修正に集中したほうがいい。この辺チームの他の2人に色々準備してもらってて助かった。
  • 実務経験大事。当日の判断力と瞬発力は日々の鍛錬がものをいいますね。反省。

以上。なんか他にも思い出したら書いてく。来年こそは勝ちたいのお。