詩と創作・思索のひろば

ドキドキギュンギュンダイアリーです!!!

Fork me on GitHub

ISUCON4 ダメでした #isucon

こないだの ISUCON で平凡な結果を取ってしまったのでお知らせします。

チーム名は「マカレラーズ」、メンバーは songmu & y_uuki でした。

予選

予選のエントリを書いてなかったので、いっしょに書いておく。具体的なポイントについてはもう覚えてないので、日記です。

予選はオンラインだったのでチーム全員がバラバラの場所で参加であったけど、Sqwiggle と Slack で十分だった。むしろ普段どおりという気もした。あらかじめ作戦を立てていたわけではなかったけど、自然と分担ができていて、アプリの細かい改修にくわえ、デプロイ周りやプロファイングは自分がやった。これがいい感じに回ったので、本戦でも自分が進んでやることになった。普通に愚直に実装して予選枠を取ったという印象だけれど、いい順位ではなかったし、おそらく次の ISUCON ではもっと参加チームも増えているだろうので、こんな感じではいかんのだろうと思う。

本戦

予選では完全リモートチームだったので三人顔を突き合わせてやるのは珍しい感じ。二人とも同じTシャツ着てるなーと思ったら Mackerel Tシャツで、自分のやつがどっかいってるのを思い出した。GitHub Tでしたすみません……。

さて、本戦はじまってからコードを読んでみるとどこから手をつけようかなーと考えあぐねてしまった。ログをファイルに書き出してるところは明らかに改善の余地があったので、そこを Songmu さんがやるということになって、そのあいだ自分はデプロイの設定を書いたりしていた。最初に8000点取って暫定一位を取ったのはうちのチームだったと記憶しています(ぼくは何もしてない。共通の Redis を使う、くらいはやったけど)。

しかしそこから早くも伸び悩んでしまった。公平性ボーナスが意外とうまそうだったので配信アルゴリズムを変える必要は感じなかったし、レポートの部分もそれほど数はなかったはず。アプリのプロファイルを取ってみるとやはりファイルアップロードと配信のあたりが重かったのでそこをどうするかというのでいろいろ試行錯誤したが、結局大した効果はあがらなかった。ベンチマークが安定した得点を叩き出してくれなかったのにもつまづいてしまって、今思うとアプリケーションレベルの最適化に逃げてしまっていたと反省。結局動画も Redis から配信のままであり、ファイルで配信するくらい試してみればよかった。

ふり返ってみると、アプリのプロファイングと高速化という視点に拘りすぎて、ウェブサービス全体としての最適化という視点に欠けていたなーと思う。翌朝用事があって結果発表までいられなかったのだけど、新幹線の中でチームメイトが 304 案件、と発言したログを見てあーあーとなったのであった。nginx のプロキシ設定くらいなら書けるがより深いところになると勘でしか分からんのでほかの二人の話についていけなかったりする。

最後までいられなかったのは残念だった。けどやっぱり今年も楽しかったです! 運営の皆様おつかれさまでした&ありがとうございます!

ごはん写真

渋谷といえば吉野家

去年に引き続き今年もビビンバ弁当を頂きました✌

突然寿司があらわれてうまかったです

はてなで一緒に働きませんか?