トップスポーツチームの監督に教わる秘訣
この論文では、氏が発見した原則を要約し、その原則をいかにしてソフトウェア開発に応用するかを説明します。
作者 Werner Schuster, 翻訳者 編集部 投稿日 2008年5月20日 午前6時21分
New Relic(サイト・英語)は、SaaS(参考記事)としてRailsのパフォーマンスモニタリングとパフォーマンスプロファイリングを提供する。どのようにこの技術が機能するのかについて、New RelicのLew Cirne氏に話を聞いた。New Relicのエージェントは100% Rubyコードで実装されるため、ハードウェアとOSの組合せがいかなるものであっても、その組合せで存在するあらゆるRuby環境、あらゆるRuby VM実装で動作します。JRubyやRubiniusに加え、リファレンス実装も含まれます。Rubyの動的言語機能を使い、ControllerアクションやActiveRecordクエリなどの比較的重量級のオペレーションに、軽量級の「トレーサー」を配置します。InfoQ: New RelicはSaaSとして機能するという触れ込みですが、どのように実装されるのでしょうか。収集した情報を貴社のサービス宛にネットワークを介して送るのでしょうか。
比較的単純なコンセプトですが、実際上手くやるのは非常に難しいのです。幸い私たちには、Wily TechnologyのIntroscopeを構築したことにより、こうしたことにおける深い経験があります。Introscopeは企業のJavaプラットフォーム向けとして、業界をリードするアプリケーションパフォーマンス管理のソリューションです。こうしたアプローチを使ったお粗末なエージェントではアプリケーションのパフォーマンスや安定性に影響を与える可能性がありますが、私たちのエージェントならそのようなことはありません。テストによると、トランザクションのレスポンスタイムへの上乗せは2〜5ミリセカンド以下であり、CPU消費も非常に低くなっています(5%をはるかに下回ります)。それにもかかわらず、アプリケーションが何を行っているかについて、驚くほど奥の深いパフォーマンスデータを、ほぼリアルタイムで提供するのです。
事後にログファイルを分析するわけではないので、次のようなメリットがあります—低オーバーヘッドかつディスク/ioゼロでずっと高速に(毎分1回)このデータを報告することができます。—非常に深い視認性を獲得することができ、その視認性を容易にカスタマイズできます。—Rubyのメソッドなら、追跡可能です。—本番マシン上でリソースをデプロイしたり、維持したり、消費したりする追加のプロセスはありません。50のプライベートベータの顧客がプライベートベータでRPMを使用していますが、その多くが非常にハイボリュームのRailsサイトで、私たちのエージェント技術に関して問題を抱えているところはありません。
前述したエージェントは、毎分収集するパフォーマンスデータをNewRelic.comに報告しますが、顧客の好みによってhttpもしくはhttpsのいずれかを介して報告を送ります。このデータは、直観で理解できる様々なビューとして表示され、ライブのRailsアプリケーションでよく尋ねられる以下のようなパフォーマンス関連の疑問に答えます。InfoQ: New Relicが現時点で認識し、報告しているパフォーマンス問題はどういった種類のものでしょうか。粗悪なコーディングプラクティスや行方不明のキャッシングなどは発見されていますか。
- 最も遅いコントローラーアクションはどれでしょうか。
- 時間の経過とともに、そのパフォーマンスはどのように変化するのでしょうか。
- 特定のコントローラーアクションのレスポンスタイムは、どのように悪化していくのでしょうか。
- 最も頻繁にクエリされるActiveRecordオブジェクトは何でしょうか。最も頻繁に保存されるのはどれでしょうか。最も遅いActiveRecordファインダはどれでしょうか。
- 行方不明になっているインデックスはありますか。
粗悪なコーディングプラクティスと行方不明のキャッシングの2つは、素晴らしい例ですね。その他で頻繁に見られる例は、アプリケーションが緊密なループの中で多数の(かつ場合によっては迅速な)アクティブレコードのオペレーションを呼び出し、それが全体として多大なデータベース利用につながると、DBツールが稼働良好と表示したとしても、単一のクエリでもっと上手く作業できるところを多数のクエリを発行することにより、アプリケーションがDBを乱用しているかもしれません。コントローラーアクションによるmemcacheの使用も追跡しますが、これも高性能かつ高スケールのRailsサイトで共通して関心を集めている分野です。InfoQ: New RelicのユーザーとしてLighthouse(サイト・英語)を言及されましたが、Lighthouse以外に公表可能な顧客のリストはありますか。
まだプライベートベータの段階ですが、Railsコミュニティの「名士」と思われるようなところ多数に、ご利用いただいています。Lighthouseはその好例です。Rick Olson氏はRuby on Railsプラットフォームの中心的開発者の一人であり、Railsコミュニティの多作な貢献者として知られています。Olson氏から推奨を受けているということは、多くを意味すると私は考えます。InfoQ: ライセンスモデルあるいは価格構成はどのようなものをご計画ですか。
New Relicの大ファンとして公開できるその他の顧客には、Moku Gift(E-Treeを贈れば、Moku Giftが本当の木を植えます!)、Redeparede.com(非英語圏市場に焦点を当てたソーシャルネットワーキング)、Hutz.com(別荘レンタルのマーケットプレイス)があります。近い将来には顧客ベースからもっと推奨があると思うので、期待してください。
まだ特定の価格は発表していませんが、発表時には加入形式のサービスになり、顧客個々の管理環境の規模に応じた月額料金を支払っていただくことになるでしょう。
RubyInsideのNew Relicに関する記事は(source)、New Relic社が最近ベンチャー事業用に350万ドルの資金を調達したことにも言及しているが、RPM以外のパフォーマンス監視ソリューションとしてFiveRunによるRM-Manage(source)も指摘している。
Railsアプリケーションのパフォーマンスに関する一般的なヒントについては、ここInfoQでJames Coxのプレゼン「Managing a high performance Rails app without tearing your hair out」(頭を抱えることなくハイパフォーマンスなRailsアプリケーションを管理する(参考記事・英語))を見ることもできる。
原文はこちらです:http://www.infoq.com/news/2008/05/new-relic-rails-performance
ITマネージャ必聴!IT活用セミナー 勝ち残りの法則~管理・統合化スペシャル~
12/5 CSQ会員限定技術情報交換会にてJCP議長が標準化について語る
12/16 ~野村総合研究所が提案~ 「不況を乗り切る!効果的なIT投資を考えるセミナー」
この記事では、私達がどのようにして大規模(240人月、10万行強)でインドとオランダの開発者も参加したスクラム・プロジェクトを成功させたのかを示しています。
Agileカンファレンスに「参加者としてだけでなく、発表者として参加しよう」を掲げたチームgoyattomは、サブミッションを提出し、7つのセッションが日本から選択されました。参加者はカンファレンスで各々の発表や、各セッションへの参加、諸外国のエンジニアとの出会い、ステージ上で DearXPを熱演などの様々な思い出を抱えて、無事日本に戻ってきました。
マイクロソフトのRobert Bellが、SilverlightとJavaを使用したインターオペラビリティのシナリオを紹介し、サンプルコードを例にとってアーキテクチャの手引きを提供します。
Agileカンファレンスに「参加者としてだけでなく、発表者として参加しよう」を掲げたチームgoyattomは、サブミッションを提出し、7つのセッションが日本から選択されました。サブミッションが選択された人、そうでない人も含めて、個々の目的意識の確認、膨大なプログラムから聞きたいセッションの選択、旅行の準備、プレゼンテーションの準備の期間を終えて、無事当日を迎えました。
筆者はアジャイルソフトウェア開発についての年に一度の国際会議であるAgile2008に初めて参加してきました。今年の日本からの参加者の数は14名にも及び、発表者は5名、受け持ったセッションは8つに及び、例年にない活躍を見せました。なぜ今年のAgile2008では、これほど多くの日本人が参加し発表に至ったのか? そのレポートをお届けします。
エスエムジーでは、Java全般を対象にしたトラブルシューティングサービス「JaTS」を提供しています。この記事では、前回に引き続き、JaTSにて蓄積したトラブル事例とその解決ノウハウの一部をお送りしている「Javaトラブルシューティングメールマガジン」(JTSMM)の総集編として、過去2ヶ月のトラブル事例と追加情報をダイジェストとして提供いたします。
この記事では、モデル駆動アプローチがうまく機能しない、または機能しなくなることによって期待した結果が実現できなくなる 8 つの理由について書きたいと思います。
No comments
返信