はのちゃ爆発

はのちゃが技術ネタとか日常のこととかを書いてます。

ISUCON7 ダメでした

昨年の ISUCON6 に引き続き ISUCON7 に参加しました。チーム Hanoniku。

isucon.net

前回参戦したときの記事はこちら。 これらの記事の存在をすっかり忘れてました

hanocha.hateblo.jp

hanocha.hateblo.jp

基本的にアプリケーション周りを担当しつつ、途中でMySQLの設定をいじったりしてました。 最終スコアは確認してませんが、MAXは 14,000 前後でした。うーむ。

やったこ

  • 事前プチ練習会1回、作戦会議1回?
  • mitamae でサーバの初期セットアップできるように
  • Github でアプリを管理、 Issue でやることやメモの共有、 PR でのレビュー
  • ローカルでアプリを動かせるように調査、手順まとめ
  • rack-lineprof を使ったプロファイリング
  • dbにインデックスはる
  • MySQL の設定いじる(キャッシュ周り等)
  • 画像周りがヤバそうな気配だったのでとりあえずDB保存やめて外だし
  • MongoDB の導入

などなど。他にも色々やってた気がする。

よかったこ

  • Github を使っての作業が割とうまくいってた気がする
    • Issue に色々まとめるの良かった otofu-square GJ
  • 事前のサーバセットアップ with mitamae よかった mizukmb GJ
  • 全体的に前回(ISUCON6)よりはちゃんと出来た気がする
    • rack-lineprof とか各種便利ツールはちゃんと使えていた気がする
  • ローカルで動かせるように環境構築する手順を割と早い段階で準備出来た
  • まぁまぁちゃんとした(?)スコアが出た
  • NEW GAME!! はいいぞ
  • ハンバーガー美味しかった
  • 今回は夕食にピザの差し入れがあった :pray:

ダメだったこ

  • App をずっと追いかけていたけど改善点があまり見つけられなかった
  • データベース周りの設定もいじったけど大した改善につながらず
  • JS を色々見てたけど完全な静的ファイル扱いで時間の無駄だった
  • ローカル環境は結局あまり使われていなかった気がする
    • そもそもベンチが安定しなかったり謎エラーに悩まされたりでずっとSSHで直に色々やってた
    • 今回のようなサーバ複数台構成だとローカル環境を忠実に再現するのがかなり困難
      • Docker 案件? Vagrant でも良さそうではあるけどしんどいのは変わらない気がする
    • アプリだけ動かせるようにしたけど、途中で静的ファイル配信コードをアプリから抜いてしまったのでローカルが動かなく…
  • Github も後半はあまり使われてなかった感
  • 304 に関するヒントがレギュレーションにあったのにあんまり気にしてなかった
  • 本番に変更を適用する→動かなくなる→他の修正が入ってもベンチ取れなくて効果測定出来ずに手持ち無沙汰
  • rack-lineprof を活用しきれていない
    • 私個人のローカル環境下でしか動作させられていなかった
    • 他2人の作業内容に追従するのがしんどい
  • ちゃんとした方針があまりないまま各自自由に作業したので、あんまりうまく回ってなかった感
  • BGM用モニタと端末は作業用と別途用意したかった

次頑張ること

  • Github 運用はもうちょっとがんばりたい
  • パフォーマンス解析ツール系は引き続き使っていく
    • もっと便利な奴があったらそれも活用していきたい
  • ローカルで動作確認をちゃんとできるようにしたい気持ち
    • 当日本番の時間内でどこまでできるか、やるのかという問題はあるものの
    • 動作確認がちゃんと取れてないものを本番適用→コケる→全体的に停滞、が痛い
  • 一通りアプリの構成、仕様などが見えた段階で戦略を立てるための打ち合わせをする
    • 特に今回のような明らかなボトルネックが見えやすいものはちゃんとどうするか話しあうのは有効な気がする
  • レギュレーションはヒントが詰まってる(はず)なのでもっとちゃんと読む

おわりに

来年もがんばるぞい!

f:id:hano_tea:20171022213601j:plain f:id:hano_tea:20171022213605j:plain