上位入賞者たちはどうやってチューニングしたのか!?Tuning Maniax総評

2014年8月13日(水)
Think IT編集部
【お知らせ】Tuning Maniax 2014表彰式を開催します!

8月下旬、Tuning Maniax2014表彰式を開催します。WordPressコース優勝者によるスペシャルセッションや、Maniaxシリーズ恒例のチャンピオンベルト贈呈式、審査員の方やAzureに詳しい参加者との交流など、充実した内容を予定しております。

会場となる日本マイクロソフト本社に来たことがない方も、せっかくの機会ですので、今回のイベントを締めくくる表彰式に是非遊びに来てください。

【Tuning Maniax 2014表彰式 開催概要】

日 時:2014年8月29日(金)19:00−21:30(18:30受付開始)
会 場:日本マイクロソフトセミナールーム
参加費:無料

スケジュール
  18:30−19:00 受付開始
  19:00−19:05 開会挨拶
  19:05−19:55 優勝者スペシャルセッション「WordPress on Azure Web Sites / VM パフォチューノート」(仮)
  19:55−20:20 表彰式
  20:20−21:30 懇親会

申し込みURLhttps://www.impressbm.co.jp/event/tuning-maniax2014/

※入館手続きの関係上、必須事項は必ず記載願います。

オープンソースCMS、WordPressのチューニングと、大規模データの分散処理を行うHadoopを使ったデータ解析の正確さと速度を競うイベント「Tuning Maniax 2014 蒼き調律者たち」。その全日程が先日終了しました。

Hadoopコースの表彰式については前回の記事でお伝えしましたが、ここでは、WordPressコースの審査委員を務めたpnop浅見城輝氏と、Hadoopコース審査委員の日本マイクロソフト佐々木邦暢氏から、それぞれ総評をいただいたので紹介していきます。

上位入賞を果たした皆さんからのコメントもご紹介しますので、是非最後までご覧ください。

pnop浅見城輝氏によるWordPressコース総評

Stage 1では、Azureの「Webサイト」と呼ばれるPaaSのサービスに構築したWordPressサイトに対して、「トップページ」、「カテゴリ検索」、「タグ検索」、「全文検索」、「記事投稿期間」、「記事」の6パターンのページにアクセスをしていました。 これらのページへのアクセスはデータの参照のみで更新はありません。

Stage 2では、Azureの「仮想マシン」と呼ばれるIaaSのサービスに構築した、WindowsとLinuxそれぞれのWordPressサイトに対して、Stage 1のアクセスパターンに加え「コメントの投稿」というデータの更新を伴うアクセスも行いました。

競技期間は、事務局が用意した負荷をかけるためのサーバーから数時間に一度、約1分間のアクセスをしてのスループットをベースに、アクセスのパターンごとに重み付けをしてポイントを付けました。

最初は負荷かけサーバーの台数は1台で、エラー率が低い参加者のインスタンスには徐々に負荷かけサーバーの台数を増やすことで、アクセス量を増やしました。

WordPressコース 1st Stage編

競技期間

◯「れいさ」さん、「miko」さんが順調にポイントを伸ばしていました。

  • レスポンスがより速いのは「miko」さん
  • 安定したレスポンスを返すのは「れいさ」さん

◯多くの参加者はキャッシュのpluginを利用していたようで、アクセスパターンのいくつかでエラーになってしまっていて、ポイントを下げてしまっていました。

審査期間

○ 競技期間にも高いパフォーマンスを発揮していた「miko」さん、「れいさ」さんに加え、二人に食い下がっていた「yorozuyah」さん、競技期間中にはまったく目立っていなかった「たか」さんが上位争いを繰り広げました。

○ たかさんは参加者の中で唯一人、Traffic ManagerというAzureの機能も利用し、Stage 1の1位を勝ち取りました。

WordPressコース 2nd Stage編

競技期間

○ Stage 1に比べ、チューニングできるポイントが多いためか、多くの方がStage 1よりも性能が上げっていました。

○ 皆さんLinuxから先にチューニングをしていたようで、Linuxだけポイントがいいという方が多くいらっしゃいました(そもそもLinuxしかチューニングしていない人もいたようです)。

審査期間

○ Linuxでは多くの方が高いポイントを上げ、チューニングの手法がある程度確立していることを感じました。

○ WindowsではStage 1でも上位に入っていた「れいさ」さんがただ一人、Linuxに匹敵するポイントを上げ、断トツの1位でした。

○ WindowsとLinuxを比較すると、Linuxの方が高いポイントを上げる方が多くいました。 WordPressというテーマでもあり、Linuxでは多くのチューニング手法が確立していたのでポイントを上げやすいということがあったようです。 しかし、WindowsでもLinuxに相当するパフォーマンスが出せることが見えました。

Stage 1, Stage 2ともに上位で戦っていた「れいさ」さん、「yorozuyah」さんが1位、2位となりました。3位となった「にこにこに〜」さんは3位以内に入ったStage 2のWindowsだけでなく、LinuxやStage 1でも安定したポイントを上げていたことが入賞に繋がったようです。

見事上位入賞を果たした皆さん、おめでとうございます!

日本マイクロソフト佐々木邦暢氏によるHadoopコース総評

「マイクロソフトのクラウドで、Apache Hadoopを使った解析処理を行う」

この、「Azureの一般的な使われ方」とは少しだけ違う舞台で本当に競技が成り立つか!?我々自身が一抹の不安を抱えながらの開催となった「Tuning Maniax - Hadoop編」ですが、結果的には多くの方にご参加いただき、Maniaxコミュニティのエネルギーを改めて実感することができました。本当にありがとうございました。

Hiveが大多数

さて、今回「どのような処理方式を選択されるかは参加者の自由!」という非常にユルいルールを設定しました。いろいろなやり方が入り乱れての戦いになると面白いな、と思っていたのですが、実際にはHiveを選択された方が多く、Javaで直接MapReduceプログラムを書かれたのは少数派、という結果となりました。やはり、一般的になじみ深いSQLに近い形でクエリを記述できるHiveは取り組みやすかったようです。

入賞者のお三方も全てHive派だったのですが、とはいえ三者三様の異なるクエリでそれぞれが正解を出力されていました。それぞれをここで引用するスペースはありませんが、1位nakayoshixさんのクエリが5つのMapReduceジョブに変換されていたのに対し、3位なのまるさんのクエリはジョブ2つで、よりすっきりしていたようです。クエリの洗練度合いでは、なのまるさんが一歩リードといったところでしょうか。

Nakayoshixさんの勝因

では優勝されたnakayoshixさんの勝因はというと、
「Azure無償評価枠内に収まるように計算しつつ、最大限にノード数を確保」
という点にあったようです。その数なんと256ノード!まずは小さなクラスタでクエリの確認をしつつ、Azureサポート部門に依頼してコア数上限を1050コアまで拡大し、最後に一発勝負のBig Runを行ったそうです。
漢らしいですね。

下はNakayoshixさんから頂いたスクリーンショットです。

優勝したnakayoshixさんのHadoopコース用構成

ちなみにJava派は…

今回少数派となってしまった「JavaでガチMapReduce」勢ですが、特別賞を受賞された福重さんはその数少ないお一人でした。福重さんは、非常に効率的なプログラムを作成されたものの、なんと「間違えてテスト用の入力データを使ってしまった」ため惜しくも入賞を逃しました。次回は是非正しいデータを使ってHive組に挑んで欲しいと思います。

なお、Hive組にやられっぱなしではあんまりなので、私(@ksasakims)もJavaでプログラムを作成してみました。一度のジョブで3問全部の答えをカウントできるように、Partitionerを自作してReducerを3つ動かすなどちょっとした工夫をした結果、32ノード利用時に処理時間35分(2100秒)と、なかなかの速度で処理できたようです。

※とはいえ、Hadoopを実際の業務で活用されている参加者の方からは「Javaで直接書いた方が速いことはわかっているが、ジョブの実行時間だけでなくプログラム開発の時間を含めて考えると、HQLで簡単に処理できるHiveは生産性が非常に高い」というご意見も頂きました。おっしゃるとおりだと思います。

次回は!?

いつ頃になるのか(そもそもあるのか)、今のところ未定ではありますが、HadoopとHDInsightはどんどん進化を続けています。今回まだ利用できなかった、HDP 2.1ベースのHDInsight-3.1では、Apache Tezが統合されてさらに高速化されていますし、そのHDInsightがAzureの日本リージョンでも使えるようになる予定です。

この新たな舞台で、さらに熱い戦いが繰り広げられることを願ってやみません。

ここでは、最後まで競技を戦いぬき、見事上位入賞を果たした皆さんからのコメントを紹介していきます。

WordPressコース入賞者のコメント

WordPressコース 総合1位
れいさ(菅 祐貴 さん)

受賞コメント
「周りの皆さんが結構すごかったので、あんまり自信がなく結果が出るまでずっとドキドキしていました。普段Windows Serverを触ることがあまりなかったので、とてもいい機会になりました。今までエンジニアとしてやってきたノウハウをかなり生かせたと思います!I love Azure Web Sites !」

WordPressコース 総合2位
yorozuyah(萬谷 重樹 さん)

受賞コメント
記念すべき第一回Tuning Maniaxに参加でき、またWordPressコースにて準優勝できたことを非常に嬉しく思っております。この度初めてAzureを利用させていただいたのですが、お小遣いを使わずにいかに良い成績を収めるかという個人的なテーマに挑戦しながらも、おかげさまでいろいろと勉強させていただきました。第2回が開催されるとすれば、次回こそは優勝できるよう調律に励みたいと思います(次回も無料期間があると助かります!)。

WordPressコース総合3位
にこにこに〜(西川 博之 さん)

受賞コメント
前回のInstallManiaxFinalでは、入賞できなかったので入賞できて幸いです。今回もランキングが日々変わって、試行錯誤して楽しめました。次回があれば、優勝めざすにこ〜

Hadoopコース入賞者のコメント

Hadoopコース総合1位
Nakayoshix(中村 良幸 さん)

受賞コメント
中村良幸と申します。なかむらよしゆき→略してなかよし→xを付けてnakayoshixです。今回は、皆さんのお陰で運良く優勝することができました。また、256ノード、1032コアを使いながらも課金なしで計算を終えることができて本当にラッキーでした。次回も必ず挑戦したいと思います。

Hadoopコース総合2位
ほげ(工藤 淳 さん)

受賞コメント
Hadoopのチューニングという枠組みで参加させていただきましたが、慣れないところもありましたがとても楽しかったです。もうちょっと時間があれば面白いことができたかもしれません。次回も開催されたら参加したいです!

Hadoopコース総合3位
なのまる(鈴木せいじ さん)

受賞コメント
Hadoopコースの3位受賞嬉しいです!でも、優勝したかったです!悔しい!本戦では、Hiveでクエリを回しました。Javaはわからないのでその方法を取りました。またあれば、挑戦してみたいです!ありがとうございました!

Hadoopコース特別賞
miko(福重美香 さん)

受賞コメント:
普段は基盤〜RailsでのWeb開発を業務でやっています。Tuning Maniaxに参加することで様々な人と出会い知識を広められました!感謝!

【関連リンク】

Tuning Maniax 2014 - 蒼き調律者たち

“オープンソース技術の実践活用メディア” をスローガンに、インプレスグループが運営するエンジニアのための技術解説サイト。開発の現場で役立つノウハウ記事を毎日公開しています。

2004年の開設当初からOSS(オープンソースソフトウェア)に着目、近年は特にクラウドを取り巻く技術動向に注力し、ビジネスシーンでOSSを有効活用するための情報発信を続けています。クラウドネイティブ技術に特化したビジネスセミナー「CloudNative Days」や、Think ITと読者、著者の3者をつなぐコミュニティづくりのための勉強会「Think IT+α勉強会」、Web連載記事の書籍化など、Webサイトにとどまらない統合的なメディア展開に挑戦しています。

また、エンジニアの独立・起業、移住など多様化する「働き方」「学び方」「生き方」や「ITで社会課題を解決する」等をテーマに、世の中のさまざまな取り組みにも注目し、解説記事や取材記事も積極的に公開しています。

連載バックナンバー

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています