写点什么

监视 Ruby 程序运行

  • 2007-12-18
  • 本文字数:1227 字

    阅读完需:约 4 分钟

在最近一次对Philippe Hanrigou 的采访中,讨论了关于Ruby 监视和故障分析方面的议题。Philippe Hanrigou 指出,为什么在Ruby 进程中断时,会有内存泄漏或者其他性能问题产生,这对于保持应用良好运行来说是很关键的问题。快速解决问题比认识到问题显得更为重要,特别是当一个业务服务碰到了问题,并且这个问题正在影响业务进程的时候。

相比基础的Unix 工具,例如gdb 或者strace(用于显示程序调用另外一个程序的syscall), DTrace是一个具有潜力并且很有用的工具。DTrace 起初是为 Solaris 开发的工具,允许低负载的对程序进行性能监控和跟踪。后来 DTrace 被迁移到其他操作系统上,最近迁移到了 Mac OS X Leopard,该操作系统中的 DTrace 支持 Ruby 解释器

Philippe 对 Linux 系统给出了一个建议的解决方案,目前 DTrace 不支持 Linux:

对于大多数社区的核心成员来说,值得付出时间和精力来推动 SystemTap 的前进。不幸的是,虽然有许多 Ruby 应用部署在 Linux 上,但 DTrace 并不支持 Linux 平台。由于许可证和其他没有解决的问题,实际上在可以预见的将来,把 DTrace 迁移到 Linux 平台上的可能性十分渺茫。在 Linux 上最接近于 DTrace 的代替者是 SystemTap,SystemTap 与 DTrace 的目的是一样的,然而不像 DTrace 那么成熟。实际上,对于用户空间运行程序的跟踪,SystemTap 仍然没有提供支持。

JRuby上运行 Ruby 应用,使得开发者可以使用在 Java 平台上的那些性能监控监视工具。 Ola Bini 在前些日子的一篇题目为"你的Ruby 可以做这个么"博客文章中提出了这个看法,文中他使用 JConsole(随 JDK 一起发行)来深入查看一个 JRuby 应用的运行情况。JConsole 可以附加在一个运行的 JVM 上 —— 使用 JMX—— 访问例如垃圾收集信息(generation sizes,collection runs 等),以及线程信息和所有其他通过 MBeans 暴露的信息。Philippe 还提到了其他用于处理内存泄漏的工具: > 最终,当发生了内存泄漏时,常用的 Java 工具也可以帮忙解决问题。一个有用的技术是使用 jmap 得到堆信息,然后用 jhat 或者其他标准的 Java 堆信息分析器来检查堆信息。SAP 的内存分析器(SAP Memory Analyzer)也值得一试,Ola 认为这些工具非常有用。

在 InfoQ 站点,最近对SAP 或IBM 的免费的内存分析器进行了一些讨论。 Philippe 最后表示他对 Rubinius很感兴趣:

如果 Ruby 开发者可以容易的访问 Ruby 解释器,从而使用并扩展它的功能,那么最终构建一个 Ruby 的故障分析工具会简单很多。这就是为什么我认为象 Rubinius 这样的项目的成功从长期来看是将整个 Ruby 开发平台提升到一个新的高度的最佳方式。开发社区在 Rubinius 上投入多少时间和精力都是值得的。

查看英文原文 Monitoring Ruby - - - - - -

译者简介: 曹云飞,西安交通大学计算机软件硕士。现就职于 Ethos ,热衷于计算机理论与应用技术的钻研,软件架构与敏捷开发,目前从事 consumer product 方面的工作。参与 InfoQ 中文站内容建设,请邮件至 china-editorial[at]infoq.com

2007-12-18 08:161046
用户头像

发布了 47 篇内容, 共 10.5 次阅读, 收获喜欢 3 次。

关注

评论

发布
暂无评论
发现更多内容

云解析的智能线路是什么意思?有什么实际用途?

国科云

测试环境治理之MYSQL索引优化篇

京东科技开发者

第二届海南大数据创新应用大赛 - 算法赛道冠军比赛攻略_海南新境界队

阿里云天池

一文讲清 API 接口的概念、设计和实现

Noah

大航杯智造扬中电力AI大赛RANK6思路总结

阿里云天池

大疆 DJI Pocket 2 和3对比评测

妙龙

大疆

华为云联创营CIO领航班第一期:数字化转型与AI赋能的深度探索

科技热闻

家庭责任增加的挑战:开发的体育直播平台如何维持年轻用户?

软件开发-梦幻运营部

一汽集团数据专家分享:实时数据技术在汽车行业的应用与实践经验

tapdata

2025杭州国际智慧城市展览会

AIOTE智博会

智慧城市展览会 智慧城市展会 智慧城市博览会

【YashanDB知识库】共享集群YAC换IP

YashanDB

yashandb 崖山数据库 崖山DB

重磅:香港大学经管学院副院长沈海鹏博士出任望繁信科技首席顾问!

望繁信科技

大数据 数字化转型 流程挖掘 流程智能

DeFi质押合约DAPP系统开发架构逻辑方案(成熟代码)

V\TG【ch3nguang】

公链大变局:ETH老态龙钟,SOL势如破竹

区块链软件开发推广运营

交易所开发 dapp开发 区块链开发 NFT开发 公链开发

数字货币发行项目开发基本要求及模式创建与海外宣发策略

区块链软件开发推广运营

交易所开发 dapp开发 区块链开发 NFT开发 公链开发

电商搜索革命:大模型如何重塑购物体验?

京东科技开发者

行云堡垒-幽影护企业数据安全!

行云管家

数字化 数据安全 企业数据

3款让工作效率翻倍的神器!一键轻松搞定PDF转PPT!

职场工具箱

效率工具 职场 PPT 办公软件 AI生成PPT

数智重庆.全球产业赋能创新大赛总决赛极客奖队伍比赛攻略_球球君

阿里云天池

TIANCHI工业 AI- 第 10 名思路分享

阿里云天池

【YashanDB知识库】生成迁移报告失败,"报错未知类型错误异常:"

YashanDB

yashandb 崖山数据库 崖山DB

Go语言中高效使用Redis的Pipeline

左诗右码

Go

DeFi质押流动性挖矿系统逻辑开发方案

V\TG【ch3nguang】

行云堡垒V7.4新特性

行云管家

小程序容器加速构建一体化在线政务平台

Geek_2305a8

TapData 信创数据源 | 国产信创数据库 TDengine 数据同步指南,加速国产化进程,推进自主创新建设

tapdata

FinClip助力国产操作系统生态建设

Geek_2305a8

AI大模型快速生成题库-助力业务人效提升10+倍

京东科技开发者

学而思二代旗舰学习机精准学Pro 值得买吗

妙龙

学而思

探索顶级PDF水印API:PDFBlocks(2024年更新)

幂简集成

API PDF水印

使用代理IP有风险吗?

IPIDEA全球HTTP

代理IP

监视Ruby程序运行_Ruby_Werner Schuster_InfoQ精选文章