ISUCON4に参加しました
いやー、楽しかったです!
今回は社内若者1名と参戦しました。使用言語はnode.js。
まずは環境を作って一回目の測定。
これで3000程度からスタートしました。
・nginxのお約束設定をいくつか入れる
・pm2でクラスタリング
・セッション管理のキャッシュ化
この辺りはサクッとできるだろうから着手してもらいつつ、個人的には
この辺りは設定だけのお手軽対応だったのでここだけ対処。
一通り12時頃に目処がつきベンチをかけてみたものの、劇的な改善は無し。6500位。
またお任せしていたクラスタリングとunixドメインソケット化にてこずってるようだったので、このスコアとtopのまわり具合から鑑みてそこはパフォーマンスに大きく影響ないかもしれないと一旦元に戻してもらいました。
この後、以下着手してもらいます。
・隙あらば他データもキャッシュ化を狙う
その間私の方はクエリを見ながらもうちょっとパフォーマンス上がりそうなところの見直しと、インデックスの設定に着手。インデックスの追加(復号インデックス)をやったり、成功/失敗判定部分のクエリをシンプルにしたり。
しかしここでnode.jsにありがちなエンバグをしてしまい、以上終了…
一旦戻し、6500のスコアで提出。追試でやってみたら8500まではいきましたが…
うーん、何かしっくりこない。これでnodeは遅いと言われるのはちょっと無念なので、個人的に追試は続けたいなと思っています。
やはり机上ではなく実際の状況での問題解決は色々と実になっていいなと思いました。
今回、勉強になりました。
・カーネルの設定変更
・mysqlチューニング