LoginSignup
3
3

More than 5 years have passed since last update.

ISUCON6参加記録とふりかえり #isucon

Posted at

ISUCONとは

ISUCON6
お題となるWebサービスを決められたレギュレーションの中で限界まで高速化を図るチューニングバトル、それがISUCONです。過去の実績も所属している会社も全く関係ない、結果が全てのガチンコバトルです。
ISUCON公式ブログ

チーム

バナナマンリターンズというチームで去年と同じメンバーで参加。全員普段はアプリエンジニア
去年の参加記録 ISUCON5に初参加してきた

事前に役割分担をざっくり決めておいた

  • ぴろ:DB周り担当
  • ちゃんまー:アプリ改修担当
  • @asflash8(自分):インフラ・ミドルウェア・プロファイリング担当

言語は全員書けるRubyで臨んだ

モチベーション

  • 去年悔しい思いをしたので今年こそは爪あとを残したい
  • 1年でどれだけ成長したのか腕試し
  • ギョウムにはない刺激を求めて

結果を先に

初期スコア ベスト 最終
0 15639 14442

去年よりは向上したものの予算通過ラインの90000には遠く及ばず悔しい結果に

タイムライン

以下私の視点での記録。アプリ周りのことはチームメンバーが書いてくれたのでこちらが詳しい

事前準備

  • 社内インフラエンジニアによるAzure勉強会
  • 計測用ツール(Kataribe、pt-query-digest)のインストールスクリプトの準備
  • my.cnfとnginx.confの準備(後にこれで盛大にハマる)
  • 去年アプリの反映ミスで悔しい思いをしたのでデプロイ&プロセス再起動の自動スクリプト準備

当日朝

無事会社に出社。9:30には全員集まる。朝時間通りに集まれてエラい

10:00~10:30

インスタンス起動とBitbucketのリポジトリへのpushやssh設定など
初期ベンチ実行 perlで2610(去年の最終スコアよりいいじゃん!)、rubyで無事0を記録

10:30~12:00

  • 計測ツールのインストールで手間取る
    • percona-toolkitのインストール→成功
    • kataribeのダウンロード→成功
    • kataribeのunzip→unzipが無くて失敗
    • unzipのインストール→何故か失敗
    • go getでインストールに切替→成功
    • bundle installでrack-lineprof→失敗
      • .bundle/configBUNDLE_FROZEN: 1が原因でした

結局アプリのプロファイラなしで挑むことになり、これが最大の敗因だったと思う

12:00~13:00

  • htmlifyの処理内でkeywordを取得してN+1になっている部分を修正
    • 5000点超え
    • 瞬間的に5位に!
  • keywordのselect *select keywordに変更
  • updated_atにindex付与
  • ↑2つはあまり効果がでず
  • この間私はnginxで静的ファイルを返す&キャッシュを試みるもnginx.confの設定にハマる無能
    • 結局2時間溶かした

デプロイとプロセス再起動の自動化スクリプトが役に立った

13:00~15:00

  • お昼食べつつ試行錯誤するも点数変わらず
  • ようやくnginxで静的ファイルのレスポンスとキャッシュ設定が通るように
    • むしろ点数が下がる(Kataribeのレスポンスでは早くなっているのに)
    • /へのアクセスが増えたことで全体が詰まって点数が下がったと思っている

15:30~16:30

  • keywordsのソートをSQLからRubyに→変わらず
  • htmlifyが遅いことはわかっていて、インフラ・ミドルウェアでできることがあまりなくなったので自分もアプリを見始める
  • htmlifyをキャッシュする実装を反映
    • 6000→15000に大幅UP。この日最高のテンション

16:30~18:00

  • keywordの変換結果をキャッシュ→変わらず
  • select * の撲滅→変わらず
  • isudaのワーカー数を5→8に→変わらず
  • MySQLのスロークエリを外す→変わらず

という感じでhtmlifyのキャッシュ以降目立った効果が上げられずFinish

まとめ

  • デプロイ&プロセス再起動の自動化はやっておいてよかった
  • やったことないことは本番でもできない。予習はやっておこう
  • 瞬間最高5位はとてもうれしい。最後までここに残れるようにがんばろう

爪あと

スクリーンショット 2016-09-17 12.14.35.png

3
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
3