チラシ裏日記上等!!新館

Webアプリケーションエンジニアの雑記帳。映画とかアニメとかの記事も書きます。

ISUCON9参加記 #isucon

ISUCON9に参加しました。ISUCONは噂には聞いていたけど自分のようなクソ雑魚エンジニアには参加する資格すらないと勝手に思っていたのと、あまり一緒に参加する友達もいないことから遠巻きに見ていただけだったのですが、今回は一緒に参加する同僚に恵まれたことやちょっとはエンジニアとして成長したんじゃね?と自己評価が少し上がっていたので今回参加する運びとなりました。

isucon.net

チーム名はnasucon。メンバーは同僚と自分を含めた3人。使用言語はRuby。スコアは4900でした。初参加だからという言い訳をしたくなるようなクソ雑魚ナメクジっぷりで悲しいです。

当日のやったこと

ちょっと時間が空いてしまったので忘れてることも多いのですがやったことをあげるとすると、

  • GitHubリポジトリ作成
  • サーバーからpullしてくるだけでデプロイできるようにする
  • N+1があったので修正(ただ1つしか出来なかった。コードを見るといっぱいあったけど他のことに気をとられて着手できず
  • 商品一覧の改善
  • buyの改善

があげられます。buyの改善に手間取って、最終的に改善出来ず終わりました。いろいろなチームがあげているログイン周りには気づいてはいたものの改善の着手が出来なかったのが残念でした。

やってよかったこと

些細なことではあるのですが、デプロイの仕組みをgit pullするだけ出来るようにし、その辺の一連の処理をコマンドで出来るようにしたのが良かったですね。figlet を使ってアスキーアートでテンションをあげていくのも結構効果的でした。楽しいのが一番ですね。コマンドを作ってくれた同僚には感謝です。

nginxのアクセスログをspreadsheetに転記して負荷がかかっているところを調べるのも効果的でした。ここで何に一番時間がかかっているかが分かるのが良かったです。ここも同僚がやってくれました。ほんとありがたい。

駄目だったこと

個人的に駄目だったなーと思うことは自分個人としてはあまりチームに貢献できなかったことですね。はじめにN+1を一つ潰せたのは自分でしたが、そこから先N+1を見つけてもうまく対策できなかったが残念です。

あとアリババクラウド慣れしてなかったため、インスタンスを立てるとき1台目はうまく行ったものの2台目を立てるとき設定を間違えて課金されてしまったことに動揺したことです。$60課金されて動揺ししばらく雑念になりました。そのあと課金されるのが怖くてインスタンス1台体勢で臨んでしまったのは痛恨の極みでした。

幸いなことに運営の皆様に対応していただけることになったので良かったですが。

しかし考えてみれば$60はたいした額じゃないです。1台は課金されなかったので最大で立てられるインスタンス3台のうち課金される可能性があるのは2台です。2台課金されたら$120ですが、優勝したら100万円の賞金なので余裕で払える額だったのです。ここを恐れてとれる手段をかなり限定してしまったのは環境を用意する責務を持った者としては愚かだったと言わざるおえないです。

思えば勝つ気でいれば課金など恐れなかったでしょう。結局自分は負けるつもりだったんだと気づきへこみました。

まとめ

今回のISUCONは初参加しクソ雑魚ナメクジなのを認識したのと闘う覚悟が出来ていなかったことに気づいた貴重な回でした。次回は勝つ気で臨めればと思います。

一緒に参加してくれた同僚に感謝しつつ、次回はもうちょっとチームに貢献できるように爪を研いでいきたいところです。

次回も状況が許すなら参加したいです。ISUCONはとてもおもしろい。価値あるイベントだと思えたのが良かったです。