ISUCON 参加結果

Livedoor主催の isucon 参加してきました。

結局一人での参入です。

【締め切りました】Webアプリケーション高速化バトル、#isucon 詳細と参加者募集開始
livedoor Techブログ : ISUCONやりましたーっ! 最終結果発表 #isucon

isa
場所は。新宿西口2分のところ、エルタワービル横のサンスカイルームで行われました。


isb
おひとりさんチームが私のところを入れて4チーム + Livedoor選抜チーム + お遊びチーム(事前社内β組)
2人チームが5チーム
残る 10チームが3人フル出場でした。

isc
入口はこんな感じ。

無線LANにうまくつながらなかったので、近所のビックカメラで端末買ってきました

isd
ちなみに、補給物資が支給されました。もぐもぐ。

11:30頃開始になったのですが、最初の1時間は無線LANカードとの戦いでした。
何やってんだ私。

結局サーバーに入れたのが13:15頃

isucon

ここからチューニング開始。スコア779で最下位です。

システム構成が分からないのでとりあえずベンチ動かしながら、top と ps leax でプロセスのぞいてどこにアクセスしてるかチェック。

mysql を使ってるらしいけど、当然触ったこともない。
perl が動いてるみたいなので、ソースコード見てみたら、100行ほどの短いソース。チューニングしようがない…。

試しに、 ruby に切り替えて動かしてみたところ、 ベンチマークがエラーになってしまった。
初期設定で動かないのでは ruby を初めて触った私では、手の入れようがない

というわけで、データベースのチューニングに取り掛かる。

あまり手の入れるところのなかった、Perl のソースを数か所いじってPerl最適化するのはあきらめたよ|・ω・)

my.cnf を無効にしたらスコアは 850前後、1割ほどスコアが上がったけど、大して変わらない。 というわけで、ひたすら設定をいじる。

途中、データベースを圧縮したら、mysql が起動しなくなったので、バックアップから復元。

あらかじめ /var/lib/mysql フォルダをバックアップしておいたのをそのまま動かしてみたのだけどダメ。
仕組みが分からないけど、バックアップフォルダに入れてたデータを 丸ごと /var/lib/mysql に戻したところ、動くようになった。ヤレヤレ。

かろうじて動くようになったので、javascript で動いてるか所に手を入れようと
ソースを開いてみたところ、改行のない、テキストの塊が。

仕方がないので、 sed使って、テキストを見やすく成形するところから。
ソースが合計200kもあるので、時間が足りず、ここでタイムアップ

isucon2
こちらが終了時の18時のスコア。

isocon3

そして審査後の結果がこちら。
それまでの結果は1分間。
最終審査は3分間でのベンチマークになっているのでスコアが上がっています。

うちもやってしまったんですが、データベースが壊れて、mysqlがsegmentation fault で落っこちるような場合、ベンチマークがスタートすら検出できずに idle のままになりました。
18:20以降のベンチマークが行われていないように見えるチームは、おそらくそのせいじゃないかなと|・ω・)

結果は 21チーム中10位。(赤色のチームは失格)

PerlやJavaScript内に埋め込んであったDB用のクエリをいじったりもできず。
プログラムほとんどいじれなかったのが無念でした。バタリ。

isucon後の 懇親会では、 Let'snote 今年の夏モデルに入れた Windows 2000 に isuconの結果データを入れてお披露目してきました|・ω・)

参加された皆様お疲れ様でした。

関連サイト:
ISUCON に参加してきました - do_akiの徒然想記
#isucon で優勝してきました - 酒日記 はてな支店
isuconお遊びチーム(事前社内β組)の設定あれこれ - Perlとかmemoとか日記とか。

おすすめ

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です