こんにちは。ごみばこです。
以前より気になっていたISUCON、ついに初参加しました。
同じ会社の人もでたいー!と言っていたので、これはいいチャンスだと思っていたのですが、 結果的にみんな予定が…とかでボッチ参戦でした。オコです。とてもかなしい。
ISUCONとは?
「Iikanjini Speed Up Contest」の略で、Webアプリケーションのパフォーマンスをあげようぜ!というものです。
http://isucon.net/
やったこと。
- 用事のため、12時半ごろからの参加。ぐぬぬ。
- PHPの実装があやしいということで、再実装する勇気は出ず、Rubyに逃げる
- 静的ファイルをnginxで返すようにした
ちょっとだけ上がった。 - worker_processをあげてみた
1kくらい上がった - relationsをRedisにキャッシュしてみるもうまくできない…
/initializeで持ってきて、全部そこを使えばいいんじゃね!?!?と思ったけどうまく行かず。 - footprintのDATE(created_at)をやめる
ちょっと上がった。 - / と /login を見直した
8kくらいまで上がった - entriesがアレすぎるのでキャッシュしてみる。
参照したentriesを全部redisに突っ込む仕様にした。が、スコアが5kまで落ちる。 - Redisが詰まった…?(????)か、ベンチボタンダブルクリックして2回走ってた…?
結果よくわからないので戻す。 - 最後いろいろいじくったら9700くらいになって時間切れ
インデックス張ったり、ビューの処理をなるたけやめたり。 - ペプシのストロングゼロめっちゃのんでた。おすすめ
500mlペットが75円なのめっちゃつよい。
やらなかった、やれなかったこと
- 過去問で練習
やろう!やろう!言っててなにもしてない!ひどい! - PHPでがんばる
妥協。PHP7とかHHVMとか試したかったでござる - デプロイの仕組みを作る
1人だし妥協。git pullすらしてない。 - entriesのカラム調整
ALTER TABLEに時間がかかりすぎ…。 - erbをやめる
erbめっちゃ遅いで。と噂を聞いた程度、実際にloginページはやめた。nginxのプロキシキャッシュも試してみたかった - SQLクエリの様子を見る
スローログの設定がうまくできなかった。アプリ側でログだせばよかったなあ - Redisキャッシュ
やり方がだいぶおかしかったかもしれない。 - アクセスログの詳細度をあげる
レスポンスタイムとか見れたはず - チームで戦う
次こそ! - erb中のロジック見直し
終了後によく見たら、もうちょっとだけなんとかできそうな部分あるじゃん… - 再起動しての動作確認
完全に忘れてた。
「1日目、2日目、それぞれで3000点に最も早く到達したチーム (ただし予選終了後の追試の対象には含まれます)」とあったので、ひとまずの目標を3000点にしていました。最終的に1万にとどかないくらいというところで、まあまあ満足する結果になりました。
そんな感じで、1人でも意外といけそうということはわかったのですが、見たいところやいじりたいところが多すぎて、うまく整理できてなかったようです。
もうちょっと、ここがこうでーとか色々メモして、見ていく順番をつけてあげると、自分の動き方がよくなってスコアも伸ばせたかなあ、という印象です
あとは、圧倒的な知識不足を感じました。
以前やっていたとはいえ、Rubyもなんだっけなーくらいだったり、どんなライブラリ使うといいかとかわからないし。
nginxよくわからないし、ミドルウェアもうーん、うーん…、うーーーーーん。
直前で猛練習したり、日頃から触っているような生活じゃないと、いきなりコンテスト!は厳しい感じでした。
あとは1人なのもあって、時間とスコアだけしか見てない動き方だった部分も反省点かなと。
git?いやいや、面倒だから本番いじっちゃおー。_bkとかしときゃいいでしょ。とか。
特定のページだけ静的化とか普通しないけど、スコア伸びたしいいやこれ。とか。
なんでそうなるのかわからないけどこういう設定すりゃいいんでしょwとか。
ということで、次回(もしあれば)は、3人で出る!を目標にがんばります。
本選もいけるなら行きたいけど、楽しいのがいちばんだよね!
最後に、運営のみなさま、楽しいイベントをありがとうございました!