フクチ@プログラミングと釣り好き大学生のブログ

プログラミングと釣りと、ときどき日常生活

isucon7で惨敗した。

f:id:Yuki-F:20171023222747j:plain
先日開催されたisucon7にチーム「仕事ください」で参加してきました。
isucon.net

今年の四月からプログラミングの勉強初めたのですが
この大会で勝ち抜くことが今年のプログラマーとしての目標でした。

四月にもこんなことを書いてた、懐かしい。(ここに isuconについても書かれてます)
yuki-f-oki.hatenablog.com



そして、四月から今まで模擬isuconを数度やったりチームのレギュラー選抜をなんとか勝ち抜いたり
色々とありましたが、いよいよ本番を迎えました!


isucon7惨敗

結果から言うと

惨敗

初期スコアが6000で

最終的なスコアが4500

初期スコアよりも低いという、絶望的な結果でisuconを去りました。
ジャイアントキリング起こせなかった。


敗因分析

前提として、unixの基礎知識だったり、複数台サーバの構成やwebの知識などが大きな原因ではありました。
しかし、それだけではなくて

①今までのisuconとは違う、予想外のことが起きた時の対処
・rackサーバ:unicorn→pumaに変更されていた。しかも設定ファイルがない
rubyなどの各言語のファイルがhome/localの中にあり、bashrubyのパスを探せていなかった。
・いつも使っている分析ツールでネックが探せなかった。

ボトルネックも今までの傾向とは若干違う点
・/messageのN +1問題解決したけど処理速度大して変わらず。。。
・一番最初で気づいていて大きいボトルネックだった画像の静的配信ができなかった。
ステートメントを304にしたり、webの通信関連の知識が求められていた。

こういったことに対して、チームで話し合いが足りず
8hあったので2hごとに作業中断して自分が今何をしているのかだったり、各々が思うボトルネックについて話す時間を取れるようにしなかったのが一番の敗因かなと思っています。

インフラ担当の樹理さんには半端ない負担をかけてしまった上に、僕が画像の静的配信について理解が足りなかったせいでapp側担当としての責任も果たせなかったので本当に申し訳ない。

isucon挑んでの感想
isuconのおかげで、知識と精神的な面での学びがありました。
知識面では、rubyなどのプログラミング言語だけではなく、最初からwebを構成するモノ全体の知識とそれを学ぼうっていうモチベーションを得られました。
あとは、それぞれの分野をより深く学んでいきたい。今回でいうならweb支える技術を改めて読んでwebに関する知識増やしたい。

精神的な面では、こういう完全に勝ち負けが出る競技に対して、ここ数年疎遠だったので
負けた時の絶望感とかああやればよかったとかの後悔とか、絶対次はやってやるというリベンジ精神を深く学びました。いや、ほんと悔しいな。。。


今後について

実は今期から1年半休学しています。その間にずっと前から言っているエストニアへの留学に年始から行ってきます。
それまでに1、2回、日本でエンジニアインターンできたらいいな。


最後に
isucon運営の皆さん、
日曜定休日だったのにも関わらず、僕らのチームだけのために8h貸切させていただいたトポセシアさん

そして、
4月から僕らにプログラミングを教えてくれた師匠のさぼさん、開発で必要なことの勉強会を何回か開いてくれたり、
クソみたいな初歩の質問にも答えてくれて、さぼさんがいなかったら学べなかったことが数え切れないくらいありました。

そしてそして
チーム仕事くださいの先輩方、この半年迷惑かけたことの方が多かったと思います。。。
プログラミングに関わらず、人生の相談にものってもらい本当に助かりました。

本当に感謝です。
皆さん、ありがとうございました。