目の前に僕らの道がある

勉強会とか、技術的にはまったことのメモ

#ISUCON 2013本戦で惨敗してきました。

寝かせると、たぶんそのまま公開しないままになってしますので、拙速で簡単ながら書きました。


予選同様、id:kfly8id:karupaneruraとチーム坂パスタとして参加してきました。
今回もdstatを叩くだけの簡単なお仕事をしてました。


結論から言うと、今回完走できませんでした。

やったこと

下回りを主に見てました。

  • dstat percona-toolkit tmux wemuxを入れた
  • ベンチ施行ごとにログを分けたかったので、ベンチ実行前にログをローテートするラッパースクリプトを書いた
  • wemuxでtop、dstat、エラーログ、アクセスログをtailしている共有セッションの作成
    • チームメンバーが誰でも見れるダッシュボード
  • mysqldの設定調整
  • pt-query-digestでクエリ解析
    • long_query_time=0.0001にしてやっとslowが出るレベルだった。。。
  • nginxのアクセスログ(LTSV)から簡単なアクセス解析をするスクリプトを書いた
    • LTSVパース楽で良かった。
  • エラーログや負荷をみつつ問題点を報告する簡単なお仕事
  • スケールアウトのために全サーバに対して環境構築
    • 間に合わなかった。。。

反省

ボトルネックを見誤った。

convertプロセスがCPUを使っていたのでそこをまずなんとかしようとして、ImageMagicからImlib2に変えようとしてそこに大きな時間を使ってしまった。そして、うまくいかなかった。
この辺はkarupane先生がもっと詳しく書いてくれるはず。

最初のうちにDBがボトルネックではないってのは分かっていたのに、未練がましくslow-queryを見ていたりとかもしてた。

アプリをほとんど見てなかった

こっちは個人の反省。
ミドルウェアとログと負荷をみるだけに終始して、アプリ側は他の人に任せていたが、最初からアプリをある程度見ておけば、もう少し総合的にアドバイスできたはず。

最後に

こんな楽しいイベントを運営していただいたスタッフの皆様ありがとうございました。
普段見ているアプリはだいたいDBがボトルネックになっていることが多いので、DB以外をチューニングするというのは普段あまりしてこなかったので、すごい良い経験になりました。
次回あれば是非参加したいです。



いろいろ書き漏れている気がしますが、 id:kfly8id:karupaneruraに補足していただけるはず。
打ち上げは地下パスタに行きましょう。あと牡蠣鍋食べに行きましょう。