dshimizu/blog

アルファ版

ISUCON 10 予選に参加して惨敗した

ISUCON 10 予選に参加して惨敗した。今回も自分はインフラ担当だった。

振り返り

今回はコロナ禍ということもあって、完全リモートで作業した。一応、事前に軽いリハーサルをやったのもあって特に問題はなかったと思うが、個人的には対面の方が良かったりする。

課題アプリケーションとシステム環境

課題となるアプリケーションは ISUUMO という「イスに合う物件を検索するサイト」というものだった。名前から推測できる通り、リクルート様が問題を作成されたそう。 インフラ環境は、今回はサイバーエージェント様よりお貸しいただけたとのこと。

参加者全員で共有利用する踏み台サーバを経由して、チームごとにOS環境3台にアクセスして利用する、という形だった。

また、今回は New Relic 様より、 ISUCON 10 用の特別無料ライセンスもご提供いただき、モニタリング環境も整っていた。

序盤〜中盤

スタートが少々遅れ 12 時スタート。まずは環境作り。サーバにログインする環境を整備したり、言語実装を切り替えたり、アプリの動作を確認したり、レギュレーション読んだり。サーバへのログインや、アプリケーションの動作確認には SSH のポートフォワードをする必要があったので、この辺で少し時間を食った。 3台あるサーバの役割を分担して、AP * 2 台、 DB * 1 台にしたりなどをやった。

中盤〜終盤

アプリケーションもDBも CPU が飽和状態にある感じだった。ボットのアクセスを弾くことでちょっと得点が伸びた。API のエンドポイントの振り分けを Nginx で変えたりしていたがあんまり効果は出ず、スコアは 1,000 前後をフラフラする感じだった。 あんまり有効打を打てず、最後に OS 再起動を試してそのままフィニッシュ。

まとめ

予選突破ラインのスコアを出すためにはブレイクスルーするポイントを見つけて、それが解決する必要があるが、まだまだ実力不足だった。また、インフラだけでは対応できることが限られるので、アプリケーションレイヤにももっと対応できるように、もっと修行したい。

運営の皆様、今年も楽しい問題をありがとうございました。予選突破された皆さんは本選でも頑張ってください。