`
Auckland
  • 浏览: 29717 次
  • 性别: Icon_minigender_1
  • 来自: 新西兰
文章分类
社区版块
存档分类
最新评论

后记: 用Strace 命令 Debug: mongrel CPU usage 100%问题

阅读更多
上周周末,忽然发现在点击某个链接后,mongrel 使用了100% CPU.
反复察看代码,没有发现问题。然后仔细的查看了log file也没有看到任何问题。
由于我的部署方案是apache + mongrel所以我又察看了/etc/httpd/logs/里面的文件。
只查到了一个502的错误。但是还是百思不得其解。

用top命令察看了进程。发现只是CPU的使用率很高,内存仍然很小。
证明不是什么内存泄漏的问题。

CPU 的使用率很高只能说明程序在某一个环节进入了一个大的loop.
查找这个loop让我费了点劲。

最后找到了神奇的命令:strace -p pid
这个命令准确地记录了进程的活动信息。

下次再遇到CPU usage 100%的时候,就可以很容易得找到具体的问题出在哪里了。



分享到:
评论
1 楼 hozaka 2009-06-09  
在两年前就已经有监视 mongrel 的插件了
http://github.com/alexstaubo/mongrel_proctitle/tree/master 希望这个插件能直接解决你的问题

装完以后跑 mongrel,用 PS 命令就能观察到 mongrel 在哪个请求上 CPU Usage 到达100%,接下来只要检查代码就OK

相关推荐

    linux的strace命令(详解)

    某个软件的运行速度突然变慢,我们可以使用 Strace 命令来诊断问题: # strace -f -o slow.strace slow # tail slow.strace 2345: gettimeofday({1143550111, 234567}, NULL) = 0 2345: gettimeofday({1143550111,...

    strace for windows 已编译 straceNT.exe

    - "debug":strace常用于调试目的,通过追踪系统调用,可以找出程序中的错误或性能瓶颈。 - "straceNT":这是strace在Windows环境下的实现,可能包含了一些针对Windows API的适配和修改。 **压缩包子文件的文件名称...

    使用 strace 命令来监控内存分配,找出OOM的原因

    使用 strace 命令来监控内存分配,找出OOM的原因 由于使用 Netty 导致的,那错误日志里可能会出现 OutOfDirectMemoryError 错误 如果直接是 DirectByteBuffer,那会报 OutOfMemoryError Direct buffer memory

    服务器上某应用cpu一直100%问题记录

    本文将深入探讨一个常见的问题:“服务器上某应用CPU一直100%问题记录”,并结合“源码”和“工具”这两个标签来解析这个问题。 首先,当一个应用的CPU使用率持续保持在100%,这通常意味着系统资源被过度消耗,导致...

    深入Linux内核:用strace解密系统调用的黑匣子

    Linux是一个开源的操作系统,广泛用于服务器、桌面计算机、移动设备以及嵌入式系统等多种平台。以下是Linux开发可能包含的几个...6. **脚本编程**:使用Shell脚本或Python等在Linux上进行自动化脚本编程,以实现任务

    strace 命令用法

    `strace`命令是Linux操作系统中的一个非常强大的系统调用跟踪工具,它允许用户监控和记录进程执行时的系统调用以及所接收的信号。通过使用`strace`,开发者可以深入了解程序在运行过程中与操作系统交互的情况,这...

    strace命令用法

    ### strace命令详解 #### 一、概述 `strace`是一款极其强大的系统调试...无论是初学者还是经验丰富的开发者,掌握`strace`的使用都将极大地提高解决复杂问题的能力。希望本文能帮助您更好地理解和使用这一强大工具。

    linux的strace命令.docx

    `strace`是Linux系统中一个强大的调试和故障排除工具,用于追踪和显示进程执行时的系统调用和信号。...通过熟练掌握`strace`的使用,开发者可以更有效地调试代码,优化系统性能,以及解决各种难以捉摸的运行时问题。

    运维利器:万能的strace1

    `strace` 是一款强大的 Linux 系统...在日常运维工作中,掌握 `strace` 的使用技巧,能够显著提升解决问题的速度和质量。因此,对于任何在 Linux 环境下工作的运维工程师而言,学习和熟练使用 `strace` 是非常必要的。

    strace 各种架构的静态编译版本

    下载后可以直接使用。 来源:http://landley.net/aboriginal/bin/ 包含: strace-armv4l 23-Sep-2014 12:38 277K strace-armv4tl 23-Sep-2014 12:39 295K strace-armv5l 23-Sep-2014 12:39 295K strace-armv6l 23...

    strace跟踪工具使用手册

    1. 当错误日志不能清晰地定位问题时,使用strace能从更深层次提供进程与系统交互的信息。 2. 在应用监控中,strace可以帮助了解应用的工作过程,尤其是系统调用和信号传递方面的行为。 3. 对于运维人员而言,strace...

    strace-4.5.

    例如,要跟踪ls命令的所有系统调用,可以使用`strace ls`。 2. 选择跟踪的系统调用:使用`-e`选项指定要跟踪的系统调用,如`strace -e trace=open,write ls`只跟踪open和write两个系统调用。 3. 控制输出信息:...

    strace命令 跟踪系统调用

    strace命令是一个集诊断、调试、统计与一体的工具,我们可以使用strace对应用的系统调用和信号传递的跟踪结果来对应用进行分析,以达到解决问题或者是了解应用工作过程的目的。 strace常用来跟踪进程执行时的系统...

    debug命令大全.pdf

    《debug命令大全.pdf》这本书是IT领域中关于调试技术的重要参考资料,主要涵盖了各种操作系统和编程环境下的debug命令及其使用方法。在计算机编程和系统维护中,debug命令是必不可少的工具,它能帮助开发者查找和...

    rbtrace:与strace类似,但用于ruby代码

    rbtrace:与strace类似,但用于ruby代码 rbtrace向您显示实时在另一个ruby进程内发生的方法调用。 rbtrace在运行于linux或mac osx上的ruby 1.8到2.2(及更高版本)上工作。 rbtrace设计为具有最小的开销,并且应该...

    Linux应用调试之strace命令详解

    在Linux系统中,strace是一个强大的工具,用于调试应用程序,尤其是当它们遇到与系统交互的问题时。strace通过跟踪进程的系统调用和接收到的信号,帮助开发者理解程序如何与操作系统交互。这个命令对于理解程序为何...

    arm平台的strace

    6. **部署与使用**:完成编译后,将生成的strace可执行文件复制到ARM设备的`/bin`目录下,意味着它可以作为系统命令直接使用,无需额外安装步骤。然后,像在其他平台上一样,可以使用strace跟踪任何进程的系统调用,...

    Linux_CPU_Usage_Analysis

    "Linux_CPU_Usage_Analysis"这个主题聚焦于分析Linux系统的CPU使用情况,这是理解和优化系统性能的关键。通过深入理解CPU使用率,我们可以找出系统瓶颈,提升效率。 在Linux中,CPU使用率主要由用户进程、内核进程...

    strace.zip

    问题的表现是AppPlc进程的CPU占用率太高,达到50%以上,可以通过“top –n 1”查看CPU使用率;通过“top –n 1”查看中还发现启动了两个AppPlc进程,且后一个AppPlc的进程号是前一个AppPlc进行进程号。  第1步:先...

Global site tag (gtag.js) - Google Analytics