Skip to content

学生枠でISUCON5に参加してみたら運良く予選を突破した

Published: at 02:25

もう結構前のことになりますが、ISUCON5 というコンテストに参加しました。
書くことあんまりないからって書かないでいたらチームメイトから書くように煽られてしまったので書きます。

準備

バイト先の先輩である shiki に誘われて、その友人の @nemupm と僕 @itkq の 3人で参加することになった。 チーム名の「アジ・タコ・エンガワ!」は好きな寿司ネタを並べたものという設定で、僕はアジ(本当はタイが一番好きなんですが頭文字が被るのでやめました)。

コンテスト自体はなんとなく聞いたことある程度で、知識も経験もない僕は足手まといにならないか結構不安だった(先輩方は参加経験があった)。

担当は

に決まり、最初に話し合った時に、せっかくだから Golang でいってみようということになり、触ったことがなかった僕は Tour of a Go build-web-application-with-golang を1週間ちょっとやって、なんとなく読める程度にした。

予選

まず MySQL と nginx のログとって Golang 実装のコード読んでどこが重いとか調べて作戦を立ててたら14時ぐらいになってて、ちょっと焦りつつもそこからアプリのチューニングを始めた。unix domain socket を使うとか定番のやつがあまり効かなくて、relations テーブルをメモリに載せる結構大きめな作業にとりかかることにした。
ダンプしたクエリを ruby で整形して/initializeで載せてアプリの SQL を取っ払ったら、スコアが5000ほど一気に伸びて一番盛り上がったし嬉しかった。
もう少し作業の余地はあったけど、Git 周りでうまくいかなかったり突然 Mac が落ちたりで焦って思ったように動けなくて本当申し訳なかった。

提出スコアが6000台で、終わった後に微妙そうって話をしてたけど、結果は5位でギリギリ本戦に出場できることになった!

終わりに

運営のみなさん本当にお疲れさまでした。本戦のほうもよろしくお願いします。

チームの先輩方ありがとうございました。予選は本当だめだめだったので本戦はもっと頑張りたいです。
あと @nemupm とは本戦で顔合わせなので楽しみです。

予選のリポジトリ: nemupm/isucon5-qualifier

以下チームメイトのエントリ:

ISUCON5予選 学生枠5位だけど突破できた
ISUCON予選を学生枠でギリギリ通過する技術