今度はJava!みんなでバリバリチューニング!第3弾チューニンガソン開催

2012年3月24日、VOYAGE GROUPオフィス内の「パンゲア」ミーティングルームにて、第3回チューニンガソンが開催されました。

第3弾!いろいろチューニングしてパフォーマンスを競うバトルイベント
「チューニンガソン」3月24日(土) 開催!
http://www.zusaar.com/event/218004
主催の株式会社ゼロスタート代表取締役、山崎徳之氏
主催の株式会社ゼロスタート代表取締役、山崎徳之氏

パフォーマンスを高めるチューニングを競うチューニンガソン

チューニンガソン(Tuningathon)とは、システムのチューニングとマラソンをかけ合わせた造語です。たとえばハッカソン(Hackathon)といえば、プログラマが一ヵ所に集まり期間を限って集中的にハックするイベントですが、そのシステムチューニング版と考えればよいでしょう。

チューニンガソンでは、Webアプリケーションのパフォーマンスを向上させることを目的とします。ただし、アプリケーションプログラムそのものには手を入れることなく、下回りとなるWebサーバやDBサーバをチューニングしたり、そのほかシステム構成に手を加えることでどれだけ性能を発揮できるかを競います。

今回で3回目の開催となります。

バリバリチューニングするぜ!Webシステムのパフォーマンスを争った一日
第1回チューニンガソン開催
http://gihyo.jp/news/report/2011/07/1301
みんなでバリバリチューニング!第2回チューニンガソン開催
http://gihyo.jp/news/report/2011/10/1101

今回のお題は「blojsom」

第3回目となる今回のお題は、Javaベースのブログシステム「blojsom⁠⁠。過去2回、WordPress、MediaWikiとPHPのアプリケーションが続いたあとだったこともあり、参加者からは「Javaかぁ」という、異口同音の感想が聞けました。

バトル条件が配布され、さまざまな反応を見せた参加者たち
バトル条件が配布され、さまざまな反応を見せた参加者たち

今回のバトル条件は次のように設定されていました。

  • blojsomのコメントPOST/GET回数
  • 10並列で一定秒数間測定
  • エラー返却は単純に除外
  • POSTはGETの10倍のスコア
  • POST後のGETによる反映チェック
  • 反映チェックの成功率の二乗をスコアに乗算

また、環境は下表のとおりです。

AWS ap-northeast-1
cl.medium instance
Amazon Linux 2011-02
blojsom-3.3b(/va/lib/tomcat6/webapps/blojsom)

こうした中、参加者たちは

  • tomcatをフロントにすること
  • アプリケーションは/var/lib/tomcat6/webapps/blojsomを指すこと
  • DBはMySQLにすること
  • /var/lib/tomcat6/webapps/blojsom以下は改変NG
  • Java、MySQL、tomcatの入れ替えはOK
  • tomcat7などにした場合もアプリケーションの場所はそろえること

という制限においてチューニングスキルを競い合ったのです。

オンライン参加も可能、初となる福岡サテライトも準備!

今回のチューニンガソンでは、オンラインでのリモート参加が可能となり、そして、東京以外の地域として初めて福岡サテライトも用意されました。

東京37名(うちオンライン1名⁠⁠、福岡サテライト10名、計47名の参加で競われました。

福岡サテライトの様子
福岡サテライトの様子

5時間にわたるチューニングバトル

12:00ジャストに、主催の山崎氏のコールでバトルがスタート。そこから5時間、参加者はみな、それぞれの知識とノウハウ、チューニングスキルを投入し、最高のパフォーマンスを目指して、バリバリチューニングを行いました。

それぞれのテーブルで集中する参加者たち
それぞれのテーブルで集中する参加者たち
協力しながらチューニングするチームも
協力しながらチューニングするチームも
皆、真剣です
皆、真剣です

なお、今回の実施にあたり、テクニカルサポートを行った株式会社マイニングブラウニー得上竜一氏が事前に計測を行った数値「64.744」が公開され、1つの目安となっていました。

今回、もう1人のサポートメンバーnajeira氏が作った計測確認ツールが、30分おきに公開されました
今回、もう1人のサポートメンバーnajeira氏が作った計測確認ツールが、30分おきに公開されました

順位発表、優勝は福岡サテライトから!

さて、開始から5時間後、17:00ジャストにチューニングバトルが終了しました。

終了直後。皆、お互いの検討を讃え合いつつ、情報交換
終了直後。皆、お互いの検討を讃え合いつつ、情報交換

その後、約30分で各チームの数値を計測し、いよいよ結果発表に移りました。

優勝は、今回初めて用意された福岡サテライトからの参加者Spring_MT氏。その他、上位10名中4チームが福岡からと、日本全国のインフラエンジニアたちのスキルの高さが証明される大会にもなりました。

その他、結果は下表のとおり。

優勝Spring_MT59.984福岡
2位hogehikobrtriverペア59.486東京
3位pekenishi59.083東京
4位meke_meke56.183東京
5位matsumana55.080福岡
6位Kenji Matsuo54.183福岡
7位TakayukiSaito51.980東京
8位Fujie Soichiro50.860東京
9位asp_nakashima&minimum2scpペア50.479福岡
10位kenichikat
(敬称略)
49.077東京
優勝したSpring_MT氏
優勝したSpring_MT氏
惜しくも2位。会場スポンサーVOYAGE GROUPからhogehiko氏&brtriver氏ペア
惜しくも2位。会場スポンサーVOYAGE GROUPからhogehiko氏&brtriver氏ペア
3位はpekenishi氏。このあたりまで結果が非常に僅差だった
3位はpekenishi氏。このあたりまで結果が非常に僅差だった

講評

その後、各チームの講評が行われました。順位発表時に多く聞かれたのは、JVMメモリ割り当てを調整(拡大)というチューニング。まずは、仮想マシン側のパフォーマンスを上げるというアプローチを取ったチームが多くいました。その他、

  • tomcatの入れ替え
  • tomcatのパラメータ調整
  • JVMをJRockitに置き換え

などといったチューニングもよく見られました。

実際、優勝したSpring_MT氏は、

  • DBのチューニング
  • tomcatのヒープ拡大

の2点を重点的に行い、高いパフォーマンスを残せたとのこと。

また、テクニカルサポートを行った得上氏からのアドバイスとして「nice値の調整」が効果的だったとのこと。実際、nice値を調整し、MySQLとTomcatがバランスよくCPUを使う値を探し出し -12という値にしたことで、参考数値64オーバーが出たそうです。

講評を行う得上氏
講評を行う得上氏
講評に続き、クラウドスポンサーAWSエバンジェリスト玉川憲氏によるプレゼンテーションが行われた。AWSを複数使うことのメリットなど、今回のチューニングとは異なる視点からのクラウド、AWS各種サービスのメリットについて紹介された
講評に続き、クラウドスポンサーAWSエバンジェリスト玉川憲氏によるプレゼンテーションが行われた。AWSを複数使うことのメリットなど、今回のチューニングとは異なる視点からのクラウド、AWS各種サービスのメリットについて紹介された

次回に向けて

以上、今回はJavaのアプリを使いながらパフォーマンスチューニングの腕を競い合いました。主催の山崎氏が第1回から言っているように「実際に使うアプリのインフラをどうチューニングするか。すなわち実用的なチューニングスキルを持っているかどうか、それを競う場にしたい」というのが、チューニンガソンの本質です。今回も、ふだんから使っているさまざまなノウハウやスキルが投入され、アツい戦いが繰り広げられました。

また夏ごろ次回開催が予定されているとのことです。次はどんなチューニングバトルが見られるのか、今から楽しみです。

イベント後、参加者同士の交流会も行われた
イベント後、参加者同士の交流会も行われた

補足

今回、使用したAMIが公開されています。⁠tuningathon-003.f / ID:ami-ac67d6ad」です。ぜひ皆さんもチャレンジしてみてください。

【レポート】いろいろチューニングしてパフォーマンスを競うバトルイベント!
「Tuningathon」第3弾! #tuningathon
http://pr.zero-start.jp/archives/65659171.html
3/24開催 チューニンガソン第3弾!参加ブログ まとめ #tuningathon
http://matome.naver.jp/odai/2133272934883641701

おすすめ記事

記事・ニュース一覧