#isucon2 に参加してきたよ!

シェアする

  • このエントリーをはてなブックマークに追加

まつうせんせーのまとめを御覧ください

#isucon2 チームいんふらえんじにあーのやったこと:ORDER BY RAND()はとっぱらった。とっぱらってもERRORにならなかったので
@matsuu
matsuu.netに移転しました
→これはチェック側のエンバグっぽいとのこと byモリスさん

#isucon2 チームいんふらえんじにあーのやったこと:SQLを眺めたところ、JOINしまくってる最新のチケット購入一覧をなんとかすればいいんじゃね?と思いつき、チケット購入時に購入履歴をRedisにぶちこんでNginxで返そうとした。が、それでは改善されず
@matsuu
matsuu.netに移転しました
→これがうまくいかなかったのは、参照の増加により/buyのロックが激しくなったせい。/buyを改善したあとなら効いた

#isucon2 チームいんふらえんじにあーのやったこと:stockテーブルにCREATE INDEXもしてみたが改善しなかった。そこで、各リクエストのレスポンスタイムを確認することに。
@matsuu
matsuu.netに移転しました
→nginxのlog formatを指定して $request_time を確認

#isucon2 チームいんふらえんじにあーのやったこと:各リクエストのレスポンスタイムを確認したところ、購入処理(/buy)にやたら時間がかかっていることがわかった。そこで購入履歴を貯めるtableを作成、そこを参照させるようにした
@matsuu
matsuu.netに移転しました
→シェル力を発揮してawkとsedでばりっと確認。計測するたびに echo "">アクセスログ してた

#isucon2 チームいんふらえんじにあーのやったこと:SQLチューニングで負荷がappにうつったので、reverse proxyやdbにもappを入れて4台でぶん回したらスコアあがった。
@matsuu
matsuu.netに移転しました
rev:app1:app2:db = 8:10:10:18 にした。特に意味は無い

#isucon2 今回のサーバはSELinuxがdisabledではなくdisableと誤植になってたので、サーバ再起動時に毎回SELinuxのエラーが出ていると @ 先生がお怒りになられてました。
@matsuu
matsuu.netに移転しました
→「日本よ、これがSELinuxだ。」的な一大事

#isucon2 チームいんふらえんじにあーのやったこと:リバースプロキシはnginx + lua + redis構成。/と/artist/(.*)と/ticket/(.*)はRedisに格納した最新チケット購入をLuaで組み立てて吐き出した。
@matsuu
matsuu.netに移転しました
→/buyを効率化したあとなら効いた

#isucon2 チームいんふらえんじにあーのやったこと:Redisをluaでngx.location.capture_multi{}で吸いだしたが、Redisのヘッダ/フッタの取り除きかたがわからず、lua.gsubで無理やり削除した
@matsuu
matsuu.netに移転しました
→ここでLua力を発揮。と言っても自分は本をめくっただけ

#isucon2 チームいんふらえんじにあー( @ @ @ )のやったこと:ほとんどインフラ周りいじってない。しいて言えばSELinuxを有効(Enforce)にしたぐらい。ishikawa84g先生のSELinux力パネェ
@matsuu
matsuu.netに移転しました
→パフォーマンスの低下は特に見られず。チケットはたくさん売れたようす

というわけで、最後はSELinuxをEnforcingにしてfinish。

ちなみに前半迷走したけど後半持ち直したきっかけはコレ。

各リクエストのレスポンスタイムを確認したところ、購入処理(/buy)にやたら時間がかかっていることがわかった

やっぱり指標になるものを持つのが大事ですねー。 計測は力なり。 指標ができて、フワフワした不安感がなくなって注力できるようになったのはでかかった。

例によって司令塔的な口だけ人間な役回りをやらせてもらったんだけど、今回は息抜きのタイミングとか煮詰まった時の対処がいまいちうまくできなくて反省しきり。

懇親会で覇者藤原さんともお話させていただいたんだけど、業務で色んな種類のアプリを深く見てる人は引き出しが多いし懐が広くて深い。 そしてインフラの人もコード書けないとこの先なーーーーーーんにもできないよ。やヴぁい。

というのを再確認した文化の日でした。

みなさまお疲れさまでした!

ads

シェアする

  • このエントリーをはてなブックマークに追加

フォローする

ads