なおすけの落書き帳

毎日がエブリデイ。

ISUCON11予選で惨敗してきた

isucon.net

昨日開催されたISUCON11予選にチームsingle_life2として参加して、まあ結果惨敗してきました。

最高スコアが10000ちょっと、最終スコアは9300程度で325位でした。

チーム

チームメンバーは某グループのSlackで仲良くなった3人でした*1

なんとなく「出てみたいね〜」みたいな話が盛り上がったので結成しました。なおチーム名の通り、普段は3人とも「結婚したいよ〜」と叫んでるような連中です*2

使用言語は、とりあえず3人共なんとなく読んで書けるPythonにしました。

やったこと

  • とりあえず脳死でAppとDBのサーバを分離
    • 最初のベンチを回したときCPUがアップアップだったので
  • gunicornでAppプロセスを複数上げるように
  • 雑にいくつかIndex導入
  • ISU画像をDBから引っこ抜いてNginxで静的配信するように試みた
    • → 画像取得するときに認証が必要なのでfailした
  • GET trendのN+1問題を解消しようとしてデチューンになった
    • SQL力の低さ

総じて、チューニングのチの字くらいしかできてないなあという感じ。

敗因

まずどう考えても事前の練習が不足していましたね…。チーム戦として見たときにチーム3人の動きがバラバラでした。そもそも前提としてどういうふうに編集していくか、どういうふうに変更点を残していくかみたいなことすら合意できてませんでした。

あとはalpとかpt-query-digestなどのツールも調べて満足していて具体的にじゃあISUCONでどう活かすのみたいなとこまで落とし込めてませんでした。

その結果、「推測するな計測せよ」という言葉を守ることができず、何となくこのへんやろガハハみたいな感じでやってました。 アプリケーションに手を出せなかったとかそれ以前に絞り込みができないのはあまりにもドイヒーでした。

感想

実は本家ISUCONは初めて参加でした。が出てこそ思うものってありますね。 これまでISUCONの問題はなんとなく眺めてたのですが、本当になんとなくでしかなくて実際に手を動かすまではしていませんでした。 まあ出たからこそ本戦出場チームのブログをみて「あ〜」となることも多いので、やはりこういったものに参加するというのは非常に大事だなと思いました。 来年はもっと練習してリベンジしたいと思います。

あと、今回のCloudformationで作る環境構築はめちゃくちゃ良かったです。 これまで色々と当日の状況を見ていて「大丈夫かな」と勝手に不安に思ってたんですが杞憂でした。 社内ISUCONや他にイベントでやるときもこれは活かせるといいなと思ってます。

最後に

今回の予選では同僚の id:mazinlabsid:skitazawa1121 など、弊社メンバが出題で参加していました。 社内のイベント準備などで打ち合わせやSlackでのやり取りもたまにしてたのですが、2人共割と死にそうな顔していたのが印象的です。 社内ISUCONで思った「運営は大変」というのは本家でも同じだったようです。

非常に楽しいイベントでした。運営の皆さんお疲れ様でした&ありがとうございました!

*1:なおグループに残ってるのは俺だけの模様

*2:フィクションです