2014年10月04日

ISUCON 2014で出来たこと出来なかったことのまとめ

先週の土曜日、同僚の @ikemonnと @dekokun とでチーム「PHPに花束を」で ISCON4の予選1日目に参加してきました。

@dekokunはISUCON3の本選出場者なので、足を引っ張らないようにしようとだけは思っておりましたが・・・

結果、1日目20位でフィニッシュ。

scoreは29000前後だったかな?

残念ながら本選出場はなりませんでした。
なんと!奇跡的に予選通過しました!

昨日、みんなで昼飯を食べながら、反省会。
ちょっと時間が経ってしまったので、時系列が詳しく思い出せなかったのですが、
KPT方式でまとめてみました。

KEEP

  • 3人でチーム組めた
  • 社内の休憩所でやった
  • 遅刻者無し
  • Monyog便利
  • 各自AWSアカウントを作ってた
  • AWSのIDを共有してたので、AMIの共有がスムーズに行えた
  • 各自がインスタンスを建ててベンチ回せた
  • ssh鍵を共有しておいた
  • ソース + confファイルをGit管理した
  • 全員AWSの操作に慣れていた
  • スロークエリは全部無くした
  • DBのチューニングはできていた


Problem

  • 掘りごたつの畳だったので腰が痛かった(椅子にしておけばよかった)
  • xhprofを表形式で見れてなかった
  • Supervisorの設定ミスで時間をくった
  • hhvmのパフォーマンスが予想より良くなかった
  • New Rericを活用できていなかった
  • アクセスログを見てなかった
  • プログラム側(php-fpm.conf)でスローログを設定できていなかった(http://php.net/manual/ja/install.fpm.configuration.php )
  • php-fpmのノウハウ不足(エラーログどこだっけ?みたいな)
  • 前半(午前中)に何したか覚えてない
  • 途中で「次に何をすれば良いのだろう?」となった


Try

  • MySQLを使うのやめる。RDB以外を使うことを考える。
  • MySQL使うなら、メモリエンジン使ってテーブル作るとか ( http://www.s-quad.com/wordpress/?p=964 )
  • hhvmについて再度検証、もっと触っておく
  • php-fpmに慣れる
  • Apache + mod_phpのような慣れているものにする
  • プロセスごとにかかった時間をみる。あとはCPU wait, I/O waitも見る。
  • httpのアクセス速度を見る
  • GoAccess試す( http://qiita.com/ariarijp/items/0a57996a93b4b4149a88 )
  • Xhprofよりも良いプロファイラがあれば探す
  • チームで事前に練習しておく
  • 監視用のPC、モニタを準備しておく
  • 課題のサイトが動く + 構造把握できた時点で、やるべきことをリストアップする
  • MySQLのチューニング知識 + MySQLを使わない場合のチューニング方法に関する知識をつけておく
  • 本戦の状態に慣れておくために、予選を本社で受ける



個人的には、期待していた&インストールにめっちゃ時間がかかったhhvmが思ったよりパフォーマンスでなかったのが、残念でした。




posted by muller at 08:47| PHP | このブログの読者になる | 更新情報をチェックする
×

この広告は180日以上新しい記事の投稿がないブログに表示されております。