2012年7月1日、今回で4回目となるチューニンガソンがVOYAGE GROUPオフィス内の「パンゲア」ミーティングルームにて開催されました。
- 第4弾! いろいろチューニングしてパフォーマンスを競うバトルイベント「チューニンガソン」
- http://www.zusaar.com/event/312053
パフォーマンスを高めるチューニングを競うチューニンガソン
チューニンガソン(Tuningathon)とは、システムのチューニングとマラソンをかけ合わせた造語で、たとえばハッカソン(Hackathon)といえば、プログラマが一ヵ所に集まり期間を限って集中的にハックするイベントですが、そのシステムチューニング版と言えます。
チューニンガソンでは、Webアプリケーションのパフォーマンスを向上させることを目的とします。ただし、アプリケーションプログラムそのものには手を入れることなく、下回りとなるWebサーバやDBサーバをチューニングしたり、その他システム構成に手を加えることでどれだけ性能を発揮できるかを競うものとなっています。
過去3回の開催では、
といったお題で争われました。
北は札幌から南は沖縄まで、過去最大6会場での開催
前回から首都圏以外のサテライト参加からの準備が用意されているのもチューニンガソンの特徴です。今回はなんと全国6会場(本会場の東京を含む)での開催となりました。開催された地域は以下のとおりです。
今回はRubyを使った「Refinery」がテーマ!
4回目となる今回は、Ruby(Ruby on Rails)ベースのCMS「Refinery」がテーマでした。前回のblojsom(Java)のときもそうでしたが、やはり自分の得意言語・不得意言語によって、悲喜こもごもの反応が見られました。
とは言っても、ベースはインフラレイヤ、チューニングして良い部分は限られますので、言語面での知識の他、実際のシステムとしてのパフォーマンスをどう上げるか、それが競われるのです。
バトル条件は以下のように設定されていました。
- RoR RefineryのコメントPOST/GET回数
- 10並列で一定秒数間測定
- 秒間平均POST/GET回数がスコア
- エラー返却は単純に除外
- POSTはGETの10倍のスコア
- POST後のGETによる反映チェック
- 反映チェックの成功率の二乗をスコアに乗算
ポイントはCPU処理パフォーマンスの向上、上のレイヤのチューニング
これまでもそうですが、チューニンガソンで利用できるリソースには限りがあります。とくにCPUは1つを前提に考えなければならず、割り当てられるCPUが1つですので、その処理をいかに最大限に、効率良く行えるかがポイントになります。
また、そもそもRuby on Railsでの処理から発生するタイムラグを減らすというのもポイントで、この2点に対応したチームが上位に入賞することになりました。
終了ギリギリでの大逆転も!まさかの結果発表
では、結果を発表します。
順位 | 名前(敬称略) | スコア |
1位 | ijin & tnmt ペア(東京) | 1351.54 |
2位 | netmarkjp(東京) | 1179.85 |
3位 | Dominion525 & udf93973ペア(名古屋) | 23.95 |
4位 | xga(東京) | 22.25 |
5位 | n0ts(東京) | 20.55 |
6位 | minimum2scp(福岡) | 19.09 |
7位 | Yosuke Yamamoto(東京) | 17.41 |
8位 | Yosuke Furukawa(東京) | 17.15 |
9位 | editnuki(東京) | 17.14 |
10位 | con_mame(東京) | 16.13 |
結果をご覧のとおり、上位2チームがダントツのスコアとなっています。実は終了1時間ほどまでは2位のnetmarkjp氏が唯一の4桁スコアだったのですが、最終段階に入り、ijin&tnmtペアが大逆転をした、という結果になったのです。
それにしても、本当にスゴイスコアですね。
優勝チームのポイントは、
- Ruby 1.9.3-p194への入れ替え
- RoRのアプリサーバにunicornを使用
- MySQLへ複数のindexを追加
- 計測ツールチェックから、スコア算出方法を調査
- Varnishによるキャッシュ
といったことに取り組んだそうです。
2位のnetmark氏もキャッシュ周りから取り組んだ結果、ケタ違いのスコアを叩きだしており、このあたりのチューニングノウハウはとても実践的で、今後の参考になったのではないでしょうか。
第5回は今年秋ごろの開催予定
さて、このようにまさにチューニングの真髄を見ることができた今回のチューニンガソン。回を重ねるごとに、さまざまなノウハウが紹介され、インフラエンジニアの育成、啓蒙に役だっているのではないでしょうか。
早くも次回の開催が検討されており、2012年7月26日現在、秋口開催が予定されています。われこそはと思う方はぜひ参加してみてください。
当日の模様は、「ゼロスタートの広報ブログ」でも紹介されていますので併せてご覧ください。