ISUCON5予選で最高スコア1万弱を出しました
Iikanji ni Speed Up Contest、通称「ISUCON」に出場してきました。
今回が初めての参加になります。
都内某所コワーキングスペース(弊社オフィス)にて、社内でチームを組んで挑みました。
言語はPHPを選択しました。Node.jsは僕しか触れなかったので。とはいえ、Node.jsは直前で中止になっていたのでPHPを選択しておいて正解でした…。
チームメンバーの@petoが書いた記事はこちらです。
担当
3人いたのでそれぞれ
- アプリケーション
- WEBサーバ
- DB
という分担をし、僕はアプリケーションを担当しました。
僕がやったことはこんな感じ。
チームとしては
こんな感じでしょうか。
結果
ベンチマークの結果を逆時系列で出しました。ところどころFAILが出ているのは、「タマキ」と呼ばれるなぞのバグのせいかと。どのチームも苦しめられたみたいですw
Score History timestamp score 17:40:52 5268 17:37:37 5824 17:35:33 20 FAIL: 17:30:09 4316 17:12:11 7032 17:04:05 4192 16:52:57 9831 16:46:35 9786 16:37:40 9034 16:28:24 9785 16:19:57 9421 16:10:29 9340 16:04:27 6301 15:58:56 6231 15:54:48 0 FAIL: 15:52:23 6018 15:44:16 5918 15:39:55 5212 15:32:07 4675 15:19:51 3318 15:11:39 6606 15:00:24 6586 14:46:04 6639 14:40:05 1279 14:31:33 1935 14:21:02 2166 14:17:09 0 FAIL: 14:04:18 812 13:56:11 1230 13:49:03 1229 13:41:38 1259 13:33:47 20 FAIL: 13:30:13 1517 13:23:44 20 FAIL: 13:10:08 1430 13:01:00 992 12:53:32 1064 12:33:47 910 12:16:10 896 12:07:42 838 11:59:58 743 11:41:07 722 11:37:21 0 FAIL: 11:31:58 697 10:43:24 68 10:34:45 0 FAIL:
最高スコアはなんと9831!最高スコアだけで見れば全271チーム中の上位50チームには入れてるんじゃないかなあと思います。
ISUCON5 本選出場者決定のお知らせ : ISUCON公式Blog
が、見ての通り途中で何度かスコアが大きく落ちています。
実は再起動のたびにスコアが半分ほどになってしまったのです。
原因を探っていたのですが、どうしてもわからず、結果として低いスコアになってしまいました…
おそらくですが、innodb_buffer_poolをディスク上に書き込んでおらず、再起動のたびにメモリから飛んでしまっていたためかと…。
終わってから気付き、非常に残念です…。
感想
実は社内で週2でISUCON会という勉強会をやっていました。若手エンジニアの集まりで、過去のISUCON問題を練習台として模索していくような会でした。そのおかげもあって当日いろんなことができたのかと。
ISUCON3,4と比べ、今回はNginxよりもMysqlとアプリケーションに比重が置かれているなと感じました。アプリケーションのコード量も比べ物にならないほどでしたし、テーブル数もこれまでの数倍はありました。そのおかげでアプリケーション担当の自分は忙しかったです…あと3時間はほしい…。
WEB業界に入ってまだ半年ほどですが、最終結果はよくなかったにせよ、最高スコアでここまで入れたのは驚きました。やはり勉強会のおかげもあるかと思いますが、ちょっと自信がつきました。
勉強会も普段やらないチューニングという分野で楽しかったですし、予選も疲れましたが楽しかったです。来年もまたやりたいなあ。ぜひNodeで!