ISUCON6本戦で昨年来の夢を叶えた #isucon
ISUCON6本戦で昨年来の夢が叶いました。
これです。
isuconの名刺、格好良さそうだから欲しい
— ゆー (@yu3mars) 2015年10月31日
かっこいいですからね。
ISUCONとは
いい感じスピードアップコンテスト。 webサービスが与えられるので頑張って高速化します。 詳しくは公式サイトを読んでください。
今回のお題は、pixiv Sketch。
チーム
チーム「:innocent:」として参加しました。
順位表での表示は😇になっていました。まさか本当に置換されるとは思っていませんでした。
運営の方がわざわざ対応してくださいました。ありがとうございました。
画像は1位を獲得した瞬間です。
私を本選に連れて行ってくれた素敵なチームメイトの記事はこちら。
やったこと
- rack-lineprofileを使うもログが残らず失敗
- Azureでポートを開く
- nginxでHTTP2対応
- nginxで静的ファイル配信を試みるも失敗
- Redisでキャッシュを試みるも型エラーを起こし失敗
- DBの構成をSlackに張り付けて眺める
- N+1問題を解消するためクエリを改造する
結果
23位 3177点
当初の目標である正の点数を取ることに成功しました。
初期点数 3907点 を一度も超えることができなくて残念……
前日の様子
- nginx実践入門を購入
- ヒカリエ侵入訓練
- 当日集合時間決定ミーティング
- 例によってruby実装をベースに頑張ることを確認
当日の様子
- 8:50に到着。名札を獲得。会場は半分くらい席が埋まっていた。
- 会場のレゴを撮影する。
- 持参したルービックキューブで遊ぶ。
- 競技開始。PVにざわつく。
- 参加チームがことごとくデプロイに失敗する。4コア*5台でAzureの制限に引っかかった?
- 2コア*5台に構成が変更される。
- 高速にデプロイ。ベンチを回し暫定1位を獲得(最初にベンチを回したので自明)。
- nginxの設定をする。
- アプリをDockerから出すことを検討するも、Docker爆破コストを考え、そのままにする判断をする(結果的には引き摺り下ろしたほうが良かった)。
- rack-lineprofileを使うもログが残らず、眼力でボトルネックを調査し始める。
- 方針が立たなさ過ぎてDBの構成をSlackに張り付けて眺める。
- get_ほげほげ がN+1問題を引き起こしていることが分かっていたので、改善に取り組む。点数が初期実装を超えられなくて謎。
- nginxで静的ファイル配信を試みるもfail。原因究明に失敗したため、切り戻し。
- Redisでキャッシュを試みるも、キャッシュが返す型がキャッシュでないものと変わっており、型エラーを起こしfail。終了直前まで粘るも解決できず。
- 絶対に正の点数を取りたかったので終了10分前に切り戻し。再起動実験は時間がないのでしなかった。
- 😇 ←この顔になった。
- 懇親会で他チームの方針を聞いて知見を深め、交流した。
感想
自分の実力不足を改めて痛感しました。
次回があれば、本選で名札を獲得して、有意な貢献ができるようになりたい。
Webサービスに関して、ある程度全体の雰囲気が分かるようになった(気がする)のは収穫。
運営の皆様、参加者の皆様、そしてチームメイトの2人に感謝です。
おまけ
Iikanji Syokuba-sagasU CONtest 個人的に開催中です。 いい感じの職場情報があればお知らせください。