(′ʘ⌄ʘ‵)へっぽこエンジニアこの広告は、90日以上更新していないブログに表示しています。となんとか予選を突破できていたのでISUCON4の本戦に出場してきた。いえば今思い出したのですが予選も記事に書いてなかったのでさらっと予選についても書いておく。予選の話ちなみに去年も出てました。予選突破と思いきやFail出過ぎで結局スコア低くて死亡みたいな感じだったので今年はなんとしても予選は突破したい気持ちでした。去年の反省で一番大きかった「ベンチがちゃんと通る状態を続ける」というのを徹底的に守ることを意識。今年は事前に集まって練習したりもしたので、まぁよく使われるnginxとかvarnishとかunicornとかmysqlとかはそれなりに設定いろいろ弄って実験して感覚掴んで望んだつもりだったのに、やはり試合となると、ほんとなかなか思い通りに行かなくて辛かった。あと去年の反省でcapistrano的なのやっぱりあるほうが便利だなと思ってたので、今年はItamaeを使ってみたけど、結果的にはやはり完璧に使いこなせる状態じゃなく結構はまって時間使ってしまったのは痛かった。(Itamaeはしっかり実用段階だったけど、僕らの知識が不足してた。)時系列でどんなことやったかはk0kubunとrkmathiが時系列でまとめて記事にして下さったのでそちらをご参照下さい。あと予選の時の大きな反省点として、チームワークが出来てなかったことがやはり大きかった。具体的には作業の分担も曖昧で何がまだ出来てないかみたいなのもちゃんと把握出来てない状態で、終了間際になって、まだそれやってなかったんだっけ??みたいな状態にみんなでなってアワアワしてた。それで、完全に実力を出せてないような不完全燃焼な感じだったのでマジ死亡したというか死亡して天に昇って雨となって地上に振り落ち草木を潤して幸せに過ごしたいと思っていたらなんとか予選突破できてたので本当に嬉しかったです(遠い目)本戦の話そんなわけで本戦ですが、前述のチームワークの反省を生かし、明確に僕が指揮を取ろうということになった。指揮といっても、指示を出すような大層なものでは無く、なんていうか「事務局長」みたいな感じ。具体的には、競技スタート直後の作戦会議やある程度コードを読んだあとの作戦会議の司会進行、仕事の分担の整理みたいな感じで、調整するための中心軸みたいなもの。実作業の分担としては、やはりk0kubunが僕より全然コード書けることは普段の仕事でもいつも思っていたので、アプリケーションコードはk0kubun中心にまかせることにして、インフラ面を僕とrkmathiで見るという感じにした。さんの料理動画のスライドとか思い出して、帯域とコネクション握りっぱなし問題で辛くなるのではと考えた。そんなわけで、おおざっぱに図示すると上のような構成を考えた。上の図、1がCPU1つのサーバ、2,3はCPU2つのサーバで、2と2'、3と3'は同一のサーバだけど便宜上図の上では分けた。考えたのは、3台ともフロントに並べて外側の帯域を使い切れるように。その時、assetファイルは各サーバから直接返せるように。一貫性を保つためにredisの各assetがどこのサーバにあるかといった情報を含めた(assetそのもののデータ以外の)全ての情報を2'に集めて、ロギングは3'にいれたmysqlにぶっこんでいくようにした。午前中の大半はコードを読んだりログを取ったりして戦略を練ったり、設定ファイルをリポジトリから管理しやすくしたりするのにほとんど使って、本格的に手を入れ始めたのはお昼ご飯の後だった。最初にnginxとかの設定ファイルを先にこれまでのisuconの問題の傾向とかである程度テンプレート化したのを入れてしまった...。aliveも意図的に超絶短くしたままだった。実世界だったら考えそうなことなのに、isuconは特殊な状況だという思い込みによって完全に縛られてしまっていた。本当に悔しすぎるし、ここをついてくるベンチマーカー優秀過ぎて辛い。あと、実は僕らのチームは18時くらいまでは動画を普通にメモリ上から返していた。理由は、最初の段階でログを見てみるとゆーてそんなに大量に動画postされてこなくね?みたいな考えがあって、僕らの戦略だと3台のサーバに動画ファイルがpostされてきて保存も3台に分散されるから、3台分のメモリ合計まではオンメモリでまだいけるんじゃね?それにやっぱり配信だからpostがめっちゃ来るというよりはやっぱり配信数がメインなんじゃないの?みたいに考えたからでした。そんな感じでやっていくと、まぁベンチマーカーはスコアが上がれば上がるほど鬼畜になっていくみたいな感じで、8000点を安定的に超えるような点数になると、普通にswapして死亡みたいになるようになってきた(varnishも爆死するみたいになった)ので、流石にもう限界だね、って話をしてFileに書き出すよにした。測定で失格になりそうな現象が起きることに気づいて、アワアワしているとTimeUpみたいになった。時間内に計測していた感じだと、8000点から12000点とかは出ていたので、なんとか学生枠では1位取りたい取りたい!!!って思っていたけど、最終スコアが5922点で本当に膝から崩れ落ちそうになった。Failしなくてよかったとか思ったけど、涙出るほど悔しい。本戦についてのk0kubunの記事はこちらで、rkmathiの記事はこちらにあるので、時系列で詳しく見たい方はこちらを参照下さい。感想チームワークは本戦は凄く良かったと思うし、知識とか経験でも正直学生枠みんなそんな大差無かったんじゃないかと思う。敗因は何かってことをここ数日ずっと考えているんだけど、本当に人間的な無力さとかを考えてしまって辛い。試合中のスコアを見てもまさかこんなに惨敗するとは思ってなかったので最終スコアみた時本当に辛い気持ちになった。あと、やっぱり生ハム原木チームさんめっちゃ凄いと思う。本戦で、しかも例年のisuconの裏をかくようなベンチマーカーだったのに見事に見破ってたし、それ以外でもしっかりパフォチューしてきてるの、本当に尊敬。あと、他のチームのみなさんも、後の懇親会でいろいろお話を伺ったり、会社で出場していた人に話聞いてみたりするとみんなやっぱり凄いいろんなこと考えていろんなこと試しててやっぱり全然勝てないと思った。同じ学生枠だったBIG丼チームとかも、元々友人で知っている人なつもりだったけど、やっぱり彼らめっちゃ凄いしめっちゃ面白いと思った。はー、なんだか、ほんと信じられないくらい、自分の無力さを感じた試合だった。どMなのか知らないけどめっちゃ面白かったのも事実だし、ショックを受けたことが少し気持ちよかった気も今はしている。したら、さすがに日数が経って冷静になったからかもしれないけど、なんていうか、もっと勉強すべきことはいっぱいあるし、そのためには時間がいくらあっても足りないんだなみたいに思うとちょっと楽しくなってきた気がする。悔しいし、考えていると胸の中ポカポカ状態になってくるけど、このエネルギーを使ってもっと精進したいし、今年度こそは修論を書き終えたい。今年度こそは、修論を書き終えたい。来年は一般枠でみなさんに拳を振り上げていきたいと思うので、引き続きよろしく御願い致します。運営の皆様、本当にありがとうございました。「Railsは...こんにちは、cnosukeです。iPhoneのエミュレーションとかする時...2014-01-09自分の余分なカロリーを他の子供に押しつけることで世界が幸せになって欲しい毎々御世話になっております。月別アーカイブはてなブログをはじめよう!cnosukeさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。