読者です 読者をやめる 読者になる 読者になる

ISUCON5の予選にでた #isucon

今年もISUCONに参加した。
転職したこともあり、去年までのメンバーではなく、社内で募集してチームを組むことができた。
フロントエンドエンジニア中心のチームとバックエンドエンジニア中心のチームの2チームで参加。自分以外は、初参加だった。
自分のチームは、バックエンドチーム(美女と野獣)でCTO、新卒女子、自分という構成で挑んだ。

当日やったこと
インフラレイヤーを主に担当して、

  • nginx1.9.5への入れ替え
  • css/js/fontをnginxで配信
  • unix domain socketでのunicornとの接続
  • LTSVファイルでログを出力 -> alp にくわせてざっくりアクセスされる箇所を洗い出し
  • mysqld.confの調整

nginx でgzip をonにするとcssのlengthが0になってbenchmarkがfailするのになかなか気づかず、時間をくったり、おもむろにhttp2をhttpレイヤーで有効にしてしまって、ブラウザで確認するとつねにdownloadするモードになったりと、地味なつまづきがつらかった。
Ubuntuという指定はレギュレーションにあったものの、systemdに慣れていなさすぎて、どうやって再起動するんだとか、restartでやっていてbenchmarkとおっていたのに、stop &start したら↑のgzipとかhttp2とかがおきるようになってなにが悪いのか判断に時間がかかってしまったりしてしまった。
proxy-cacheを有効にして、stop&startしたら、downloadする件がでてしまって、それ消してるのに治らないとなって、proxy-cacheは関係ないのにパニックになって時間がかかったりもした。。。
あと、/etc/my.cnf でslow-query確認しましょうとなって、設定変更しても、何も出ず、そもそも/etc/my.cnfは読まれていなかったとかもあって*1、経験不足が出てしまった感じだった。

アプリレイヤーは、チームメンバーにまかせていたものの、initializeのあつかいで、とまどいがあったり、別のインスタンスで動かしつつgitで管理するみたいなことに、時間を取られたりしていて、ISUCON慣れみたいなもののあるなしが出てしまった感じだった。
18時過ぎぐらいまでで、ほぼほぼインフラレイヤーの変更のみがいきているような状態だったけど、アプリの改善を自分とCTOとでツーマンセルのような状態で進めていったらスコアが伸びていったので、完全なる作戦ミスだった。。

最終的に一番スコアがでたのでも4909だったので、初期スコアからは伸びたもの、トップとは5倍ぐらい差がでてしまっているので、悔しさしかない。
ベンチツールが公開されたら、もう一度チャレンジしたい。

GCPはbigqueryは普段からさわっているものの、GCEははじめてだったけど、さくっと使えるのはよさそうだった。gcloud sdkssh接続するときの挙動が謎すぎて何が起きているんだという感じもあるけれど。。

ともあれ、運営のみなさま、出題者のみなさま、ありがとうございました!

isucon.net

*1:/etc/mysql/mysql.conf.d/mysqld.cnf が読み込まれていた