ISUCON4に参加しました

いやー、楽しかったです!

今回は社内若者1名と参戦しました。使用言語はnode.js。

 

まずは環境を作って一回目の測定。

これで3000程度からスタートしました。

 

・nginxのお約束設定をいくつか入れる

unixドメインソケット化

・pm2でクラスタリング

・セッション管理のキャッシュ化

 

この辺りはサクッとできるだろうから着手してもらいつつ、個人的には

 

csspngの配信をnginx側に持っていく

この辺りは設定だけのお手軽対応だったのでここだけ対処。

 

一通り12時頃に目処がつきベンチをかけてみたものの、劇的な改善は無し。6500位。

またお任せしていたクラスタリングunixドメインソケット化にてこずってるようだったので、このスコアとtopのまわり具合から鑑みてそこはパフォーマンスに大きく影響ないかもしれないと一旦元に戻してもらいました。

 

この後、以下着手してもらいます。

・隙あらば他データもキャッシュ化を狙う

 

その間私の方はクエリを見ながらもうちょっとパフォーマンス上がりそうなところの見直しと、インデックスの設定に着手。インデックスの追加(復号インデックス)をやったり、成功/失敗判定部分のクエリをシンプルにしたり。

しかしここでnode.jsにありがちなエンバグをしてしまい、以上終了…

一旦戻し、6500のスコアで提出。追試でやってみたら8500まではいきましたが…
うーん、何かしっくりこない。これでnodeは遅いと言われるのはちょっと無念なので、個人的に追試は続けたいなと思っています。

 

やはり机上ではなく実際の状況での問題解決は色々と実になっていいなと思いました。

 

今回、勉強になりました。

カーネルの設定変更

mysqlチューニング