どうもマコピーだよ。
そんなことはさておき前回の予選から引き続き本戦のISUCONに行ってきたので報告させていただきます。
チームぽわわ2のメンバー紹介
- @shogo82148氏
我がチームのリーダー。主にアプリケーションを担当。Redis::Fastなどのモジュールを書くも今回の懇親会で「もうXSは嫌です〜」と言う。
彼の本戦の記事
ISUCON3の本戦に参加してきた - Shogo's Blog
- @9re氏
今回はnginxを担当。普段はAndroidのアプリを書いているそうです。
- ぼく( @mackee_w )
インフラ周りを担当。
時系列を追って説明
10時
@shogo82148 in train
— マコピー (@mackee_w) 2013, 11月 9
ギリギリまで寝てた
— マコピー (@mackee_w) 2013, 11月 9
渋谷着
— マコピー (@mackee_w) 2013, 11月 9
戦場にきた http://t.co/tMVTK6GCbR
— マコピー (@mackee_w) 2013, 11月 9
戦場にきた
35分ごろにヒカリエに到着。他の2人は来ていました。
45分になってISUCON恒例のストーリー仕立てのレギュレーション説明が開始。
サーバ構築までやるっていうんだから本当に総合力勝負だ…… #isucon
— マコピー (@mackee_w) 2013, 11月 9
今回は「サービス作ったら社長がプロモーション打つでっていきなり行ってきて、負荷に耐えられませんって言ったら、そんなこともあろうかと4台まっさらな2コア1GBメモリのVPSサーバをドヤ顔で渡して去っていった」っていう設定なので、去年のISUCONと違って実はミドルウェアの設定も特にされていないサーバを使っていろいろしなければなりません。
レギュレーションが高度すぎて吐きそうになってきた #isucon
— マコピー (@mackee_w) 2013, 11月 9
あと、そのサービスっていうのが画像版Twitterで公開範囲設定もあるっていうことなので体調悪くなっていたのがこの辺り。
11時
サーバ情報が書かれた封筒を開封して作業開始
- 1台目の既にアプリが動いているサーバに入って他のサーバにssh isu[2-5]で入れるようにした。
- その間にリーダーがgithubにリポジトリを作って既存アプリをコミット。
- @9reさんがopenrestyをビルドして僕がsupervisorで起動させるようにしてベンチを動かす。だが通らず。このときは後ろ(=アプリ)がまだ詰まっている状態だからダメなのかな〜〜〜〜ってなって、結局またapacheに戻す。
- ベンチ中のtopを見てたらconvertなるプログラムがめっちゃいっぱい動いていたので、「予選の時のmarkdownを外部プロセスとして立ち上げるやつか〜〜〜〜」ってなってコード見たらやっぱりそうだったのでリーダーにImagerあたりに書き換えるようにお願いした。あとcartonで落とされたモジュールもリポジトリに含めちゃっていて、それを含んだリポジトリをローカルにcloneしたらアンチウィルスがImagerのバイナリに反応しちゃって、それでImager使ってないけれど既に入ってるよってわかった。ウケる。
12時
- 僕はnginxでうまくいかないの調べてた。JSで作られたフロントエンドでちゃんと画像とか表示されてなかったので予選の時のsrcの指定がおかしいことになっているのと同じにおいかなとか思って調べたらjQueryでそこらへん組まれてて涙目。結局リバースプロキシするときにちゃんとヘッダを設定していなかったのが原因だった
- リーダーのImager書き換えが出来たっぽいのでベンチを通す。でも通らない。よく見たら画像差分の差分が発生しているよと言われているっぽい。「pngがうまく変換できないっぽいんです」と言われたのでそこで作業ストップしてもらった
- ごはんは麻婆豆腐丼。あとリーダーがこのあと中華あんかけ定食みたいな弁当を5時間ぐらい書けて食べてた。
- あとボクは去年のサバ弁当、好きだったです。
13時
14時
15時
16時
- 3台目と4台目にアプリのセットアップ完了。このとき全部apacheを表に立てて裏にstarletのサーバ立ててた。そういえば前回やったmax-workersチューニングは全くやってない。
- ./benchmark -w 2 -t 1,3,4でベンチ。15000ぐらいいった。一瞬一位になった気がする。
今日の僕ちゃんと働けてる #isucon
— マコピー (@mackee_w) 2013, 11月 9
- でもこのあとにLINE選抜が確か4万とかいってぶっちぎって特別賞を持ち去っていった。社会は厳しい。
- そんなところで「そろそろnginxのやつ上げる」って@9reさんが言ったのでそれの対応とかしてた。アイコンのキャッシュとかフロントでするやつっぽい。ここで1台だけnginx化してベンチが通る。1台でworkload=4で13000とかいった気がする。
17時
- 3台目と4台目にnginxセットアップ
- 30分ぐらいで3台目と4台目ありでworkload=4で27000ぐらい。
- 5台目CPUあんま使ってないしアプリ動かすかーーーーってなっていや、再起動試験するかーーーって迷って「1位じゃないと意味が無いし!!!!!!」ってなってアプリセットアップ開始。完了したのが50分で、1回コケて直してもらって最後に./benchmark -w 5 1,3,4,5でベンチしたら32000行った。この時はカヤック選抜を抜かして何故かガッツポーズした。そこで時間切れ。
18時
- 終わった直後にカヤック選抜の人たちに「勝ったで〜〜〜」って言いに行ったらスコア指さされて最後の最後に35000とか叩きだされたことを見せられて落胆。その後カヤック選抜の人たちと人間だめになる椅子が置いてあるスペースで魂の抜け殻になっていた。
![ビーズクッション CUBE L ブラウン ビーズクッション CUBE L ブラウン](http://ecx.images-amazon.com/images/I/412-jbeLHYL._SL160_.jpg)
- 出版社/メーカー: フレックス販売
- メディア: ホーム&キッチン
- 購入: 3人 クリック: 14回
- この商品を含むブログを見る
↑こういうの
19時
- 結果発表。fail 0点だった。心が震えた。はかない。社会は厳しい。
- LINE選抜チームの方々、おめでとうございます!!!!
最終的な構成
反省点
来年はちゃんと再起動して動くかやろう。
最後に
- @fujiwaraさん、@acidlemonさん、@941さんをはじめ運営のみなさま、ありがとうございます。問題を見た時は鬼かと思いましたが、たぶんめっちゃ苦労されたと思いますし、懇親会で実際に苦労したって言ってたので、お疲れ様でした。
- @shogo82148氏、@9reさん、一緒に戦ってくれて本当にありがとうございます!!
- あと参加した皆様が予選のあとやこの本戦のあとの知見や感想など、本当に興味深くて勉強になります。ありがとうございます。一年に一回、こういう会があってそれを眺めるだけでも楽しいのに、実際に参加できてめちゃくちゃ経験になりました。
そんなわけで今年の僕たちの夏は終わりです。次は81忘年会でまた会いましょう。