Ruby に関する投稿を表示しています

ISUCON5 オンライン予選に参加していました

この記事は公開されてから1年以上経過しており、情報が古い可能性があります。

こんにちは。ごみばこです。

以前より気になっていた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人で出る!を目標にがんばります。
本選もいけるなら行きたいけど、楽しいのがいちばんだよね!

最後に、運営のみなさま、楽しいイベントをありがとうございました!

某社を退職していました

この記事は公開されてから1年以上経過しており、情報が古い可能性があります。

(7月中旬くらいに退職してました。)
夏休みインターンからそのままアルバイトとして、11ヶ月ほどお世話になっていました。

アプリの検証作業を行ったり
Ruby on Railsでほげほげしたり
CentOSセットアップしたり
Gitlab立てたり
データセンターへ行ってサーバーの片付けをお手伝いしたり
Ruby on Railsでほげほげしたり
といったことをしていました。
他にもPythonやC#をちょこっと、Flashもすこしやりました。
いづれにしても、やったことのないことばかり、しらないことばかりで、とてもおもしろかったです。
そこに居るだけでも勉強になることが多かったと思います。

Ruby on Railsばかりでしたが、そこから学んだことはあまりアウトプットできていないですね。
Rails要素はありませんが、RubyはARCやちょっとしたスクリプトなどで使っています。
Rails要素もこれからやっていけるとよいですね。

心残りといえば、最後に関わったモノがどうなるのか、というところです。
同じくアルバイトの方に半ば押し付けるような形になってしまい、申し訳ないと思います。
勝手な事をいっていることは承知の上ですが、試みは面白いのでぜひとも形にしていただきたいと思います。

ということで、関わったみなさま、ありがとうございました。


さて、次のお仕事は決まっています。
都心部にある某社に内定を頂いているので、そこでお世話になります。
よろしくお願いします。

大学での卒研・論文が疎かにならない程度にがんばります。
なお卒研の方では、Webセキュリティについてほげほげしています。
完成度はまだまだですが、がんばって上げていきます。


(追)
お引越しを考えているので、仕事場所からあまり遠くなく、良さそうな場所あったら教えて下さい。