<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>SNS開発者の雑記帳 &#187; パフォーマンス</title>
	<atom:link href="http://www.synapz.jp/mrsy/tag/%e3%83%91%e3%83%95%e3%82%a9%e3%83%bc%e3%83%9e%e3%83%b3%e3%82%b9/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.synapz.jp/mrsy</link>
	<description></description>
	<lastBuildDate>Fri, 05 Mar 2010 02:11:21 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Railsアプリのパフォーマンスモニタ ｢New Relic｣を入れてみた</title>
		<link>http://www.synapz.jp/mrsy/2009/10/rails-new-relic/</link>
		<comments>http://www.synapz.jp/mrsy/2009/10/rails-new-relic/#comments</comments>
		<pubDate>Tue, 13 Oct 2009 00:13:04 +0000</pubDate>
		<dc:creator>mrsy</dc:creator>
				<category><![CDATA[開発環境]]></category>
		<category><![CDATA[New Relic]]></category>
		<category><![CDATA[Rails]]></category>
		<category><![CDATA[パフォーマンス]]></category>

		<guid isPermaLink="false">http://www.synapz.jp/mrsy/2009/10/13/post59/</guid>
		<description><![CDATA[
弊社サバゲ〜るの開発では以前､開発環境にFiveRuns TuneUpをインストールしてみたことがあり､これは便利だ是非活用しようと思ったまま､なかなか手つかずの状態になっていました｡


FiveRuns TuneUpとは､Railsアプリケーションのパフォーマンスチューニングに役立つ情報を､グラフィカルに表示してくれるプラグインです｡


今回､久々にブログ更新しようと思って真っ先に思いついたのがそのFiveRuns TuneUpネタでした｡活用方法を調べようと思い､FiveRunsの本家サイトを見たら､




･Workthinkなる会社に買収されたよ､今ははそっちで新しい製品を作っているよ
･｢DASH｣というサービスは終了するのでデータをエキスポートしてね


と掲示されているページだけがあり､TuneUpプラグインはどうなるのかとか､それまで提供していたサービスについては言及されていません｡｡


TuneUpはあきらめ､類似サービスを調べたところ､masuidriveさんも利用しているという､New Relicが良さげということが分かりました｡
New Relicも TuneUp と同様に Railsアプリケーションにプラグインをインストールし､そのプラグインがNew Relic側にデータを送信し､蓄積するという仕組みです｡


料金体系は以下の通りです｡今回はお試しということでLiteアカウントを選択してみます｡





Free subscribeをクリックし､必要情報を入力し､Submitします｡
しばらくすると入力したメアドにメールが届くので､URLをクリックしアクティベーションを行います｡





アクティベーション後､Home(Myページ)にプラグインのインストール方法が載っています｡ページ上部に小さくRPM Version2が出てるよと表示されているので､せっかくなのでそれにしてみます｡





掲載されているとおりに手元の開発環境をセットアップします｡


1. Railsアプリケーションにプラグイン(Agent)を入れる
[masayuki@dev_svgr_jp /var/local/projects/svgr.jp]$ script/plugin install http://newrelic.rubyforge.org/svn/newrelic_rpm --force
+ ./CHANGELOG
+ ./LICENSE
+ ./README.md
+ ./Rakefile
+ ./bin/mongrel_rpm
+ ./bin/newrelic_cmd
+ ./cert/cacert.pem
+ ./init.rb
+ ./install.rb
+ ./lib/new_relic/agent/agent.rb
+ ./lib/new_relic/agent/chained_call.rb
-- 略 --


このプラグインが定期的に性能データをNew Relic側に送信するようです｡


2. config/newrelic.yml を作成する
HOMEからnewrelic.ymlをダウンロードし､configディレクトリに置きます｡デフォルトではproduction / staging環境のみ有効になっているので､developmentでも有効になるよう､172行目を trueにします｡


3. Railsアプリを再起動する
さて､サクッとインストールできたようなので､データが蓄積されるまで開発環境をいじっておきます｡
10分ほどいじった後､New Relicを見てみます｡


おお! どうやらデータが取得できているようです｡




My Applicationをクリックすると､概要が表示されます｡



この画面で確認できるのは､以下の通り

平均レスポンスタイム(Ruby / DB)
Apdexスコア

Apdex(Application Performance Index)とは､アプリケーションの性能を定義する標準的な指標とのこと｡

詳しくは､こちらを参照｡
スループット(request per minute ?)
ホスト毎のCPU使用率､メモリ使用量
直近のイベントノート(コメント)､デプロイ履歴など



なお､Overview以外の下記のタブは､Bronzeアカウント以上でないと見ることができません｡

Web Transaction
Database
Transaction Traces
Errors



取得したデータには､ノート(コメント)が書け､それを共有することができます｡



まとめ
FiveRuns TuneUpでは､RailsアプリのMVC毎に何ms時間が掛かっているか棒グラフで表示する非常にシンプルな機能だったのですが､New Relicは(というよりFreeアカウントでは)そこまでは提供されないようです｡ Ruby全体のレスポンス､ホスト毎のCPU使用率､メモリ使用量やApdexスコアにより､FiveRunsより大きな粒度でアプリケーションの性能を確認できます｡


注意すべき点としては､動作環境がproductionかつ1分おきにデータを取得するので､Amazon EC2など従量課金の場合でトラフィックが多いアプリケーションの場合はデータ転送量に注意が必要です｡


Railsアプリは遅いと諦める前に､どこがボトルネックなのかを見える化し､チューニングを施す｡これらを簡単に行えるツールは今後も需要があるのではないでしょうか｡
]]></description>
			<content:encoded><![CDATA[<p>
弊社<a href="http://svgr.jp">サバゲ〜る</a>の開発では以前､開発環境に<a href="http://www.fiveruns.com/">FiveRuns TuneUp</a>をインストールしてみたことがあり､これは便利だ是非活用しようと思ったまま､なかなか手つかずの状態になっていました｡<br />
<br />
<br />
<a href="http://www.fiveruns.com/">FiveRuns TuneUp</a>とは､Railsアプリケーションのパフォーマンスチューニングに役立つ情報を､グラフィカルに表示してくれるプラグインです｡<br />
<br />
<br />
今回､久々にブログ更新しようと思って真っ先に思いついたのがそのFiveRuns TuneUpネタでした｡活用方法を調べようと思い､<a href="http://www.fiveruns.com/">FiveRunsの本家サイト</a>を見たら､<br />
<br />
<img src="/blog/mrsy/2009/10/13/d20e34ade5bd968cdb7e286272267952-thumb-500x303.png" width="500" height="303" alt="d20e34ade5bd968cdb7e286272267952.png" class="mt-image-center" style="text-align: center;margin: 0 auto 20px" />
<br />
<br />
･<a href="http://www.workthink.net/">Workthink</a>なる会社に買収されたよ､今ははそっちで新しい製品を作っているよ<br />
･｢DASH｣というサービスは終了するのでデータをエキスポートしてね<br />
<br />
<br />
と掲示されているページだけがあり､TuneUpプラグインはどうなるのかとか､それまで提供していたサービスについては言及されていません｡｡<br />
<br />
<br />
TuneUpはあきらめ､類似サービスを調べたところ､<a href="http://blog.masuidrive.jp/index.php/2008/07/19/new-relic/">masuidriveさんも利用している</a>という､<a href="http://www.newrelic.com/">New Relic</a>が良さげということが分かりました｡<br />
<a href="http://www.newrelic.com/">New Relic</a>も TuneUp と同様に Railsアプリケーションにプラグインをインストールし､そのプラグインが<a href="http://www.newrelic.com/">New Relic</a>側にデータを送信し､蓄積するという仕組みです｡<br />
<br />
<br />
料金体系は以下の通りです｡今回はお試しということでLiteアカウントを選択してみます｡<br />
<br />
<br />
<img src="http://www.synapz.jp/blog/mrsy/2009/10/13/17e53e03470d2d3a3e37154801deb04c-thumb-500x641.png" width="500" height="641" alt="17e53e03470d2d3a3e37154801deb04c.png" class="mt-image-center" style="text-align: center;margin: 0 auto 20px" />
<br />
<br />
Free subscribeをクリックし､必要情報を入力し､Submitします｡<br />
しばらくすると入力したメアドにメールが届くので､URLをクリックしアクティベーションを行います｡<br />
<br />
<br />
<img alt="アクティベーション後" src="http://www.synapz.jp/blog/mrsy/2009/10/13/03.png" width="224" height="216" class="mt-image-center">
<br />
<br />
アクティベーション後､Home(Myページ)にプラグインのインストール方法が載っています｡ページ上部に小さくRPM Version2が出てるよと表示されているので､せっかくなのでそれにしてみます｡<br />
<br />
<br />
<img src="http://www.synapz.jp/blog/mrsy/2009/10/13/01.png" width="500" height="313" alt="データ取得前HOME.png" class="mt-image-center" style="text-align: center;margin: 0 auto 20px" />
<br />
<br />
掲載されているとおりに手元の開発環境をセットアップします｡<br />
<br />
<br />
<strong><big>1. Railsアプリケーションにプラグイン(Agent)を入れる</big></strong><br />
<pre><code>[masayuki@dev_svgr_jp /var/local/projects/svgr.jp]$ script/plugin install http://newrelic.rubyforge.org/svn/newrelic_rpm --force
+ ./CHANGELOG
+ ./LICENSE
+ ./README.md
+ ./Rakefile
+ ./bin/mongrel_rpm
+ ./bin/newrelic_cmd
+ ./cert/cacert.pem
+ ./init.rb
+ ./install.rb
+ ./lib/new_relic/agent/agent.rb
+ ./lib/new_relic/agent/chained_call.rb
-- 略 --
</code></pre>
<br />
このプラグインが定期的に性能データをNew Relic側に送信するようです｡<br />
<br />
<br />
<strong><big>2. config/newrelic.yml を作成する</big></strong><br />
HOMEからnewrelic.ymlをダウンロードし､configディレクトリに置きます｡デフォルトではproduction / staging環境のみ有効になっているので､developmentでも有効になるよう､172行目を trueにします｡<br />
<br />
<br />
<strong><big>3. Railsアプリを再起動する</big></strong><br />
さて､サクッとインストールできたようなので､データが蓄積されるまで開発環境をいじっておきます｡<br />
10分ほどいじった後､New Relicを見てみます｡<br />
<br />
<br />
おお! どうやらデータが取得できているようです｡<br />
<br />
<img src="http://www.synapz.jp/blog/mrsy/2009/10/13/02.png" width="500" height="132" alt="データ取得完了HOME" class="mt-image-center" style="text-align: center;margin: 0 auto 20px" />
<br />
<br />
My Applicationをクリックすると､概要が表示されます｡<br />
<img src="http://www.synapz.jp/blog/mrsy/2009/10/13/MyApplication-thumb-500x255.png" width="500" height="255" alt="MyApplication.png" class="mt-image-center" style="text-align: center;margin: 0 auto 20px" />
<br />
<br />
この画面で確認できるのは､以下の通り<br />
<ul>
<li>平均レスポンスタイム(Ruby / DB)</li>
<li>Apdexスコア<br />
<br />
Apdex(Application Performance Index)とは､アプリケーションの性能を定義する標準的な指標とのこと｡<br />
<br />
詳しくは､<a href="http://apdex.org/overview.html">こちら</a>を参照｡</li>
<li>スループット(request per minute ?)</li>
<li>ホスト毎のCPU使用率､メモリ使用量</li>
<li>直近のイベントノート(コメント)､デプロイ履歴など</li>
</ul>
<br />
<br />
なお､Overview以外の下記のタブは､Bronzeアカウント以上でないと見ることができません｡<br />
<ul>
<li>Web Transaction</li>
<li>Database</li>
<li>Transaction Traces</li>
<li>Errors</li>
</ul>
<br />
<br />
取得したデータには､ノート(コメント)が書け､それを共有することができます｡<br />
<img src="http://www.synapz.jp/blog/mrsy/2009/10/13/note-thumb-500x174.png" width="500" height="174" alt="note.png" class="mt-image-center" style="text-align: center;margin: 0 auto 20px" />
<br />
<br />
<h2>まとめ</h2>
FiveRuns TuneUpでは､RailsアプリのMVC毎に何ms時間が掛かっているか棒グラフで表示する非常にシンプルな機能だったのですが､New Relicは(というよりFreeアカウントでは)そこまでは提供されないようです｡ Ruby全体のレスポンス､ホスト毎のCPU使用率､メモリ使用量やApdexスコアにより､FiveRunsより大きな粒度でアプリケーションの性能を確認できます｡<br />
<br />
<br />
注意すべき点としては､動作環境がproductionかつ1分おきにデータを取得するので､Amazon EC2など従量課金の場合でトラフィックが多いアプリケーションの場合はデータ転送量に注意が必要です｡<br />
<br />
<br />
Railsアプリは遅いと諦める前に､どこがボトルネックなのかを見える化し､チューニングを施す｡これらを簡単に行えるツールは今後も需要があるのではないでしょうか｡</p>
]]></content:encoded>
			<wfw:commentRss>http://www.synapz.jp/mrsy/2009/10/rails-new-relic/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

