ISUCON5予選に参加してきました
ISUCON5の予選に参加してきました。
ISUCONとは?
お題となるWebサービスを決められたレギュレーションの中で限界まで高速化を図るチューニングバトル、それがISUCONです。過去の実績も所属している会社も全く関係ない、結果が全てのガチンコバトルです。
メンバーは
今回のお題
「ISUxi」という、どこかで聞いたことのあるような名前の「高負荷に耐えられるSNSコミュニティサイト」 機能としては
- ログイン、ログアウト
- プロフィール
- 友達
- 記事 (友達限定公開あり)
- コメント
- 足あと機能 などなど割りと複雑なもの。
実装言語はRuby、Perl、Python、PHP、Java、Go、Nodeなど様々なものがあり、PHP7を使って挑む気マンマンだったのですが、
スタート当初、運営側のPHPの実装ではベンチマークが期待する動作をせず、急遽使用言語をRubyに変更。
Nodeは準備すら出来なかった模様。Noderってチームは何の言語を選んだのだろう。
環境
やったこと
- New Relic導入
- Nginxで静的ファイル配信
- Redisでusersやfrient listをキャッシュ
- MySQLインデックス貼り貼り
- Unicorn workerチューニング
- N + 1問題のクエリが沢山あったのでチューニング
- MySQLのクエリ最適化
もろもろ
6割ぐらいはMySQLクエリ最適化してた気がします。
感想
8時間ぶっ通しで集中してたのでめちゃくちゃ疲れたけど、普段使ってない技術を使うので勉強になるし、すごく楽しかったです。
主催・共催のLINE、Treasure Data、TREASURE、TECHORUS、Googleの皆様、本当にありがとうございました!