InfoQ

新闻

Rails性能分析工具New Relic

作者 Werner Schuster 译者 贾晓楠 发布于 2008年5月13日 下午11时24分

社区
Ruby
主题
性能和可伸缩性,
Ruby on Rails,
SaaS,
JRuby
标签
Rails,
性能评估,
Ruby on Rails,
JRuby,
Rails插件

New Relic作为一个“软件即服务(SaaS)”,为Rails提供性能监视和分析服务。我们访问了New Relic的作者Lew Cirne,来谈一谈这项技术是如何工作的。

InfoQ: 你是怎样实现性能监视功能的?它对性能有什么影响吗?它能不能运行在非MRI的Ruby版本上?

我们的工具是用100%的Ruby代码写的,因此可以运行在所有的硬件/操作系统组合上的任何的Ruby 环境中,也能用在所有的Ruby VM实现上,包括JRuby和Rubinius等。基于Ruby的动态语言特性,我们把轻量级的“跟踪器”放置在相对重量级的操作上,比如控制器行为、 ActiveRecord查询等。

这个方法虽然相对简单,但是要做好其实很难。幸运的是,我们具有相关的资深经历。我们做过Wily Technology公司的Introscope,这是一个行业领先的用于企业级Java平台的应用程序性能管理方案。因此,尽管可能有一些虽使用这个方 法却写得很差的软件会对应用程序的性能和稳定性产生影响,而我们的则不会。测试表明,我们只会给每一个事务的响应时间增加2~5毫秒,而且我们的CPU消耗也很低(远低于5%)。可我们却提供了极其丰富的性能数据来近乎实时地显示出应用程序正在做什么。

由于我们不分析事后的日志文件,因此就有一些益处:我们可以更快地报告这些数据(每分钟一次),并且保持低消耗和零磁盘/IO操作——我们能得到很深的能见度,而且能 见度也很容易定制——如果是一个Ruby方法,我们还可以跟踪它——在产品机上则没有任何额外的部署、维护和消耗资源的过程。我们有50个客户在使用内部 测试版的RPM——它们中许多都是大规模的rails网站——而没有一个客户在使用我们的工具时遇到过任何问题。

InfoQ: New Relic应该说是作为“软件即服务”来工作的——这是如何实现的呢?是不是把收集到的信息通过网络发送到你的服务上呢?

我方才介绍的这个工具是这样工作的:它每分钟把收集到的性能数据通过http或https(取决于用户选择)报告给NewRelic.com。这些数据被呈现为一组非常直观的视图,来回答一个活动rails应用程序的常见性能问题,例如:
- 最慢的控制器行为有哪些?
- 它们的性能是怎样随时间变化的?
- 一个特定的控制器行为的响应时间是怎样中止的?
- 哪些ActiveRecord对象最常被查询或者被保存?最慢的ActiveRecord查找有哪些?
- 我有没有丢失一个索引(index)?

InfoQ: 目前New Relic能识别哪些性能问题并给出报告?能发现错误代码实践、丢失缓存等等吗?

这两个都是非常好的例子。还有一个例子我们也经常看到,就是应用程序在一个紧密的循环里引发了大量的(可能是很快的)活动记 录操作,这就给数据库带来了很大的负担。数据库工具报告说它运行得很好,而实际上程序却可能由于查询做得不够好而在滥用数据库。我们也跟踪由控制器行为导 致的缓存使用,这也是高性能和大规模rails站点上的一个公共的焦点问题。

InfoQ: 你提到了New Relic的一个用户——Lighthouse——有没有其他客户的名单?

尽管我们仍处于内部测试阶段,可我们已经有了大量的客户,他们中很多都是rails社区的“名人”。Lighthouse就 是个很好的例子——Rick Olson是Ruby on Rails平台的核心开发者之一,也是rails社区的一个多产的贡献者。我认为他的认可意义非凡。

登记在案的其他客户中还包括New Relic的粉丝们,比如Moku Gift(推出了E-Tree,而且他们还种了一棵真的!)、Redeparede.com(面向非英语市场的社会化网络),以及Hutz.com(度假 房屋租赁商场)。期待我们的客户能在不久的将来给予我们更多的认可。

InfoQ: 你打算用什么样的许可模式?采用怎样的价格策略?

我们还没有公布价格。但是当我们公布时,你会发现RPM会采用订阅式的(subscription-based )收费服务。客户将按月支付与他们的管理环境相对应的费用。

RubyInside也报道了New Relic,提到New Relic公司最近获得了一笔350万美元的风险资本融资,还指出了另一个性能监视方案:FiveRuns的RM-Manage

获得关于Rails应用程序性能的信息,可以看看James Cox关于“管理高性能Rails应用程序而不必抓狂”的讲座

查看原文Rails performance analysis with New Relic

深度内容

和Google互补的搜索引擎Wolfram|Alpha

Wolfram|Alpha与Google究竟是什么关系,Wolfram|Alpha自己是如何定位的?Wolfram|Alaph在多大程度上是语义网搜索呢?InfoQ中文站就等等这些问题采访了Wolfram研究公司中国区商务经理王翔。

SOA契约成熟度模型

本文说明了所推荐的契约版本管理设计策略是如何与SOA成熟度模型发生联系的。文章目的是为实现版本管理和可组合性提供一个路线图。

数据服务简介

Vijay Narayanan在这篇文章中对数据服务的几个方面进行了介绍,它们都是SOA实践者和数据架构师感兴趣的内容。本文对数据服务的几个方面进行了介绍,包括需求定义,基本原理和好处、范围、开发以及消费模式。

分块云计算

在本文中,Jimmy Nilsson描述了一种他在过去数年间观察到的一种正在缓慢成长的架构风格,他把这种风格称为“分块云计算”。

豆瓣网技术架构变迁

罗马不是一天建成的,豆瓣的技术架构也是随着用户规模的增长一直在持续变化中。在本次演讲中,豆瓣的首席架构师洪强宁将与大家一起分享从上线时的单台服务器架构开始一直到现在的豆瓣架构变迁历程。

融合思想:深入探索S#arp架构

Billy McCafferty展示了S#arp架构,它在ASP.NET MVC框架的基础上,荟萃了当今的最佳实践,应用在ASP.NET Web应用程序的架构设计中。

王雷谈开源以及新兴市场计划

中国作为新兴市场中的新兴市场,是Sun在美国之外实施SSE(SUN Startup Essentials)项目重点关注的地区。在QCon Beijing 2009期间,InfoQ中文站有幸对此项目的负责人王雷先生进行了采访,探讨了关于开源、新兴市场、SSE等话题。

使用HTML5构建下一代的Web Form

HTML5 是由 WHATWG发起的,最开始的名称叫做Web Application 1.0,而后这个标准吸纳了Web Forms 2.0的标准,并一同被W3C组织所采用,合并成为下一代的HTML5标准。