Still life

web系エンジニャー @yui_tang の備忘録等々

ISUCONの傷が癒えたので振り返る #isucon

ISUCON初日に参加、翌日から傷心旅行に出てたためようやく書く。(単なる夏季休暇)

Go Homeというチームで初日に参加し、敗退した。

メンバー

メンバーは @DQNEO , @traveil , そしてわたし @yui_tang という社内で集まった三名。
全員初参加のメンバーであり、日頃はアプリケーション周りを中心に触っている3人。
通常業務でも直接関わる事は少なく、それぞれの得意不得意も把握しきってはいなかった。

当日の流れ

当日浮足立っていたため、詳細なログを取っていなかったので記憶ベースとなっています。ご了承下さい。

  • PHPで参加予定だったが、初日は競技開始直後にPHPの参考実装が不完全であることが発覚し、スコアが出ない最悪のケースを回避するべく別言語に変更。
  • Perl 2 : Ruby 1でPerlに決定。「Perlは大人の嗜み」って同僚の方が言ってたので嗜んでないわたしが悪い。
  • 初回ベンチの時点でmysqlのslow_log出力設定とLTSVファイルでログを出力設定
  • @yui_tangがpt-query-digestを使ってクエリ解析と足りてなさそうなINDEX追加作業。
  • @travail, @DQNEOがLTSVファイルをalp にくわせてアクセスされる箇所を洗い出しながら、アプリケーション解析とnginxのチューニング。
  • @yui_tangがmysqlのチューニングをした(つもりになっていた)
  • 13:00過ぎくらいの時点で5,000を超え、ポータルでも6位くらいにランクイン。弊社GoBoldチームより一時期上位に来たためみんなで記念撮影。それがメンバーの最後の笑顔となった......
  • N+1問題の対応を行うも、対応以前より遅くなる等苦戦。
  • ちょこちょことkernelパラメータを調整
  • usersへのクエリを減らす為に、/initializeでmemcachedに載せちゃおう。(未完)
  • 終盤はわたしはコードや解析結果を見ながら直せそうな点を共有しながら応援したりベンチのエンキューしてただけ。
  • 最終的に7000点台でfinish。5000点台から全くスコアが伸ばせなかった。

他にも色々やったけど明確に覚えているものが。次回はログをちゃんと取ろう。

反省点
  • 初参加だからというのは言い訳だけど、当日のログをある程度正確に取っておけばよかった。しっかり振り返りが出来るし次回以降の参考になるはず。
  • 以下、不慣れだった。
あとがき
  • 圧倒的な力不足を痛感したものの、把握していた改善点を対応しきれれば本戦にも手が届いたのでは?という結果だった。悔しい。
  • 各自の足りていない能力・分野が明確になったので、とても得るものがあった。
  • バランスよく改善点が散りばめられており、とても良い予選問題だったと思う。
  • 弊社のGoBoldチームには是非決勝では優勝をもぎ取ってきて欲しい。
  • 運営の方々の多大な労力によりとても貴重で有益な経験が出来ました、本当にありがとうございました!!
  • 次回は予選通過を目指すとともに、社内からの参加チームを増やしていきたい。
  • 弊社、PHPの参考実装で協力できるのでは...

諸々情報キャッチアップしきれてないので、各種ブログを漁った後に再挑戦するー!!