秋に第三回が開催されるISUCONですが、学生さん限定で「ISUCON 夏期講習」が開催されました。イベントは、tagomorisからWebアプリケーションについての座学を行ったあとに、ISUCON2の問題にチャレンジしてみるという内容でした。

参加者の中にはWebアプリケーションの開発・運用を既にやっている方もいましたが、それ以外の方にとっては、普段からプログラミング言語に触れていても、サーバの設定やデータベース・Webアプリケーションのチューニングといったものは未知の世界で、何から手をつけて行ったら良いかわからず、苦労していた方が多かったように感じました。

今回の「ISUCON 夏期講習」では、ISUCON2の問題に取り組む環境としてEC2の仮想サーバを用意しました。参加者には事前に環境を構築してもってきてもらうという予定でしたが、ノートPC上の仮想サーバなどでは性能が出にくく難しいだろうということで、EC2のサーバを使えるように準備しました。サーバは快適に使えたのようで参加者の評判も上々でした。

仮想サーバはISUCON2のパフォーマンス計測ツールとアプリケーションを動作させやすいように各言語の実行環境がプリインストールされているだけの簡単なものですが、そのまま捨てるのももったいないのでAMIとして公開します。

AMI ID: ami-e5fb6ae4
AMI Name: isucon_summer_course_2013
Region: Asia Pacific (Tokyo)

AWSに不慣れなのであまりよろしくない設定があるかもしれません。問題があれば指摘お願いします

「ISUCON 夏期講習」サーバのつくりかた

EC2のインスタンスを起動する際に、上記のAMIを指定して起動してください。インスタンスタイプはなんでも構いませんが、ベンチマークツールとデータベースと課題のアプリケーションを同じサーバで動かすのでコアが複数個あるインスタンスタイプでないと正常にパフォーマンス計測ができません。今回の夏期講習では「m3.xlarge」を選択しました。スポットインスタンスを活用するとリーズナブルに遊べると思います。

サーバが起動したら、「ec2-user」でログインしてください。

$ ssh -i keyfile.pem ec2-....amazonaws.com

ISUCON2の環境は「isu-user」ユーザにて構築してあります。

$ sudo su - isu-user

パスワードは設定していませんで、適宜設定するなりsshの公開鍵を設置すると良いかと思われます。

「isu-user」にてログインすると、ホームディレクトリに「isucon2」ディレクトリがあります。これはgithubのisucon2 repositoryをcloneしたものです。計測用ツールのみセットアップされています。

アプリケーションを動かすには、「ISUCON2のつくりかた」および「isucon2/webapp」の下の各言語ディレクトリの「README.md」を参考にしてください。各言語の実行環境はperl/ruby/pythonについてはxbuildでセットアップ、phpはrpmにてインストール済みです。

perlであれば、

$ cd isucon2/webapp/perl
$ carton install
$ carton exec -- plackup -s Starman -E production --preload-app app.psgi

として実行できます。デフォルトでポート 5000 で起動します。(carton/cpanfileは今回のイベントのために追加しました)

計測ツールはsupervisordにて起動されていて、ポート 5001 で起動しています。ブラウザにてアクセスしてください。次のような画面が表示されます。

isucon-mgr.png

ベンチマークを動かすには、ID/パスワードが必要ですが、ID/パスワードは「isucon2/tools」ディレクトリ内のconfig.jsonに書かれていますので確認の上ログインしてください。

今回の環境で perlのアプリケーションを動かした場合、チケット販売数で600強、スコアで81万前後の数値となるようです。なお、ISUCON2の時よりも負荷を掛けるツールの平行数が少なく設定されていますので、単純に比較は出来ないかもしれません。

ちなみに、自分が前回のハックを使わずに、30分ぐらいでトライした結果はこれ。

isucon-hs.png

変更点はここに置きました。ぜひ、皆様も良いスコア(小さいスコアが良いスコアです)を目指してチャレンジしてみてください!

参加者の皆様ありがとうございました。

おまけ

Webアプリケーションのパフォーマンスについても学べる良い本が最近でました。過去2回のISUCON出題者・参加者が執筆している章があるのでぜひ読んでくださいませ

Perl徹底攻略 (WEB+DB PRESS plus)
大沢 和宏 cho45(さとう) 小林 篤 和田 裕介 嶋田 裕二(xaicron) 牧 大輔(lestrrat) 奥 一穂 広木 大地 伊藤 直也 長野 雅広 藤原 俊一郎 伊藤 智章 まかまか般若波羅蜜 小飼 弾 近藤 嘉雪 中川 勝樹 宮川 達彦 tokuhirom 藤 吾郎(gfx) 村瀬 大輔
技術評論社
売り上げランキング: 1,535
Web開発の基礎徹底攻略 (WEB+DB PRESS plus)
小飼 弾 田籠 聡 近藤 宇智朗 並河 祐貴 赤松 祐希 井上 誠一郎 ミック 天尋 左石 和田 裕介
技術評論社
売り上げランキング: 728

このブログ記事について

このページは、Masahiro Naganoが2013年8月 2日 14:44に書いたブログ記事です。

ひとつ前のブログ記事は「PerlとWeb開発の今がわかる「Perl徹底攻略」が発売されます!」です。

次のブログ記事は「YAPC::Asia Tokyo 2013 にて「PSGI/Plack・Monocerosで学ぶハイパフォーマンスWebアプリケーションサーバの作り方」というはなしをします #yapcasia」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

ウェブページ

OpenID対応しています OpenIDについて
Powered by Movable Type 4.27-ja