とあるエンジニアが言い放ちました。
「上位に届かないチームはただの記念参加だよねー。」
というわけで、今年のISUCONは見事に予選落ちしました。
お題
「ISUxi」というどこか懐かしい響きの「高負荷に耐えられるSNSコミュニティサイト」
友達、記事、コメント、足あと機能が揃っており、以前より複雑度が増したなかなかの凝った作り。
起こったこと
これはESIによるpartial cachingが出来るので、Varnishでやってみよう!
と意気込んだものの、エラーが解決できず結局は間に合わずに終了ーーっ。
やりたかったこと
- Varnish + ESI + Redis & MySQL
やれたこと
具体的な作業内容は今手元にないので、ぼんやりと。
- MySQLのクエリー修正、パラメータ、Indexの追加
- nginxのパラメータ追加
- kernelのパラメータ追加
- 一部 redis化
- rubyプロセスの調整
- sidekiqのワーカーで遅延書き込み
はまったとこ
今回はいろいろ初めてがあったので無駄に時間を潰した感じ。
systemd
- 最新のUbuntu 15.04はsystemdなんですね。ずっと14.04 LTSのupstartに慣れていたので、こっちは初めて触わった。apparmor
- 設定ファイルをsymlinkでやろうとすると読み込まれず。。こいつのせいだと気づくのにちょっと手間取った。いらない子には怒りのapt-get purge
を。mysql
- なんか設定ファイルが/etc/mysql/my.cnf単体じゃなくて、symlinkされたりいろんなディレクトリに散らばってたりで若干戸惑った。後、上記のapparmor関連で設定ファイルがしばらく全然反映されずに。。varnish
- こちらもvclやパラメータ指定が本来/etc/default/varnish
で出来るはずが、なかなか反映されずに苦労した。Varnish 4.0のパッケージはapt-getですんなり入るんだけど、起動スクリプトが/etc/init.d/varnish
に設置されるのに、そちらは無視され、systemdの方が優先される模様。カスタマイズするには/lib/systemd/system/varnish.service
をコピって編集してdaemon-reload
が必要。詳しくはこちら
終わりに
競技内容が確実に進化していて、非常ーーに楽しめました!その分、出題者の苦労が計り知れず。。こんどビールでも奢ります。今年の本戦は残念ながら行けないけど、外野として楽しくポップコーンでも食べながら観戦したい所ですね。
おまけ
現在はHashiConfに向けての飛行機の中だけど、悔しいので機内で復習しておきます!