当前位置:  开发笔记 > 后端 > 正文

modrails - 流氓ruby进程消耗100%cpu

如何解决《modrails-流氓ruby进程消耗100%cpu》经验,为你挑选了1个好方法。

我从mod_rails获得ruby实例变为"流氓" - 这些进程不再列在乘客状态并使用100%cpu.

除了安装god/monit来杀死实例,有人能给我一些关于如何防止这种情况的建议吗?我无法在日志中找到任何有帮助的内容.



1> Colin Curtin..:

如果您使用的是Linux,则可以安装"strace"实用程序,以查看Ruby进程正在执行哪些操作消耗所有CPU.这将为您提供良好的低级视图.它应该在您的包管理器中可用.然后你可以:

$ sudo strace -p 22710
Process 22710 attached - interrupt to quit
...lots of stuff...
(press Ctrl+C)

然后,如果你想停止的过程中间,并转储堆栈跟踪,你可以按照指南在使用Ruby的GDB http://eigenclass.org/hiki.rb?ruby+live+process+introspection,特别是这样做的:

gdb --pid=(ruby process)
session-ruby
stdout_redirect
(in other terminal) tail -f /tmp/ruby_debug.(pid)
eval "caller"

您还可以使用ruby-debug Gem远程连接到您打开的调试套接字,如http://duckpunching.com/passenger-mod_rails-for-development-now-with-debugger中所述.

在Github上似乎还有一个关于调试看起来很有趣的Passenger实例的项目,但缺少文档:http: //github.com/ddollar/socket-debugger/tree/master

推荐阅读
手机用户2402851335
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有