ISUCONに初参加しました
ISUCON9の予選が9/7,8の日程で開催されました。
会社の同僚と一緒にチームを組んで、初めてISUCONに参加しました。
2人チームでチーム名は「isuconなにもわからない」です。仕事ではNode.jsを使っているのでNode.jsで挑戦しました。
利用言語の比率が公開されていますが、Node.jsの利用者はそんなに多くなかったみたいです。
参考値ですが80番目くらいのスコアでした。
事前の準備
- ISUCONの勝ち方などISUCON関連の資料を読む
- 過去問を解く
- GitHub - matsuu/vagrant-isucon: ISUCON過去問を構築するためのVagrantfile集
- vagrantで簡単に環境構築できるので便利です
- 過去の出題の解説を参考にして実際にチューニングを実施してみました
本番でやったこと
効果あり
- キャンペーンの値を0から4に変更する
- itemsテーブルにindexを追加する
- 複数台構成にする
あまり効果がなかった
改善できなかった
- POST buyのロック問題
参加してみて気づいたこと
- 計測の設定などのセットアップをするのが遅い
- 午前中をほとんど使ってしまった
- アプリレベルでの計測をシュッとできるようにする
- 1つ1つconsole.timeを埋め込んで時間がかかった
- tsc化するのに時間がかかった
- typescriptに慣れる必要を感じた
- 改善策がほとんど思いつかなかった
- SQLは改善ポイントがあまりなかった
- キャッシュする観点が思いつかなかった
- 改善のパターンをもっと身につける必要を感じた
- 人数は3名必要
- 2名だとアプリとインフラで分かれることになって個人の力がないと辛い
- 逆に1名でも本戦出場チームがそれなりにいるのですごいと思います
まとめ
準備や本番も含めて良い経験になりました。次回も参加したいと思います。