写点什么

监视 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:161314
用户头像

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

关注

评论

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

TikTok内容下载工具4K Tokkit Pro for Mac

Rose

Permute 3 for mac(全能媒体格式转换器)v3.11.9中文版

Rose

Downie 4 for Mac(视频下载工具)兼容14系统v4.7.11中文版

Rose

Modern CSV for Mac(CSV编辑器/查看器)v2.0.7激活版

Rose

昆仑万维23年收入49亿净利润13亿,研发费用增长40%,坚定All in AGI与AIGC

新消费日报

Linux设备驱动系列(三)——参数传递

Linux内核拾遗

linux开发 Linux内核 内核开发 设备驱动

JetBrains Rider for mac(跨平台.NET IDE集成开发)v2023.3.5激活版

Rose

CQ 社区版 2.11.1|新增主体授权、操作向导等

BinTools图尔兹

oceanbase 数据库管控 gbase8a 最小权限管理

12 个监控指标确保 API 策略成功

NGINX开源社区

nginx cpu HTTP API KPI

鸿蒙HarmonyOS实战-ArkUI组件(Text/Span)

蜀道山

鸿蒙 程序员 架构 HarmonyOS 鸿蒙开发

BetterMouse for Mac:流畅的鼠标滚动、光标速度控制

Rose

文件管理器和速度极快的 FTP 客户端:ForkLift

Rose

GreatSQL统计信息相关知识点

GreatSQL

423世界读书日 和京东零售技术人一起读好书

京东零售技术

读书 企业号 4 月 PK 榜

C++ 访问说明符详解:封装数据,控制访问,提升安全性

小万哥

程序人生 编程语言 软件工程 C/C++ 后端开发

金字塔原理讲的什么?详细的麦肯锡金字塔读书笔记来了!

彭宏豪95

读书笔记 思维导图 在线白板 金字塔原理 效率软件

基于RT-Thread的智能家居助手

芯动大师

单片机 RT-Thread 语音控制

鸿蒙HarmonyOS实战-ArkUI组件(Progress)

蜀道山

鸿蒙 程序员 架构 HarmonyOS 鸿蒙开发

HDC2023 大会全部资料

菜根老谭

华为 鸿蒙 华为开发者大会

PopChar for Mac 特殊字符输入工具

Rose

Photoshop 2024 for mac(ps 2024)v25.7.0中文激活版

Rose

RAG 修炼手册|如何评估 RAG 应用?

Zilliz

Zilliz LLM rag

Parallels Desktop 19 for Mac(PD19虚拟机)无需关闭sipv19.1.0一键激活版

Rose

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