Ruby on rails OSX上的Ruby进程保持在90%以上。什么';什么事?

Ruby on rails OSX上的Ruby进程保持在90%以上。什么';什么事?,ruby-on-rails,ruby,macos,cpu,Ruby On Rails,Ruby,Macos,Cpu,我在本地构建了一些Ruby/Rails应用程序。我最近注意到,无论我在使用哪个应用程序,我的Ruby进程都会累积到90%以上,CPU风扇会启动,除非我杀了这个笨蛋,否则是无法停止的。我在开发哪个应用程序似乎并不重要。有什么想法吗?有没有办法追踪出了什么问题 我在Mongrel、Apache/Passenger和POW上运行了这些应用程序,每次都得到了相同的结果 顺便说一句,我没有任何工作或任务持续运行。这种占用CPU的情况发生时,服务器不会受到影响 我的系统: Ruby: ruby 1.8.7

我在本地构建了一些Ruby/Rails应用程序。我最近注意到,无论我在使用哪个应用程序,我的Ruby进程都会累积到90%以上,CPU风扇会启动,除非我杀了这个笨蛋,否则是无法停止的。我在开发哪个应用程序似乎并不重要。有什么想法吗?有没有办法追踪出了什么问题

我在Mongrel、Apache/Passenger和POW上运行了这些应用程序,每次都得到了相同的结果

顺便说一句,我没有任何工作或任务持续运行。这种占用CPU的情况发生时,服务器不会受到影响

我的系统:

Ruby: ruby 1.8.7 (2009-06-12 patchlevel 174) [universal-darwin10.0] Rails: Rails 3.0.4 OSX 10.6.7, MBP 2.53 GHz Core 2 Duo Ruby:Ruby 1.8.7(2009-06-12补丁级别174)[通用达尔文10.0] Rails:Rails 3.0.4 OSX 10.6.7,MBP 2.53 GHz核心2双核
这可能更像是一个建议,而不是一个答案,因为我不知道它是否涵盖了您的问题,但它只需要几分钟,您可能想尝试一下

我在FreeBSD上遇到了这个问题,下面是我的解决方案。不知何故,Ruby/Rails/etc的版本彼此不兼容,而且它们也没有给我提供我可以一直追踪的错误消息

我相信您正在这样做,但请确保您的包始终是最新的

我切换到rvm(Ruby版本管理器),并完全停止使用系统Ruby。这是我用Ruby进行的最好的系统管理操作,因为MacOSX/Macports(我的开发机器)和FreeBSD/ports(我的生产机器)在Ruby版本中远远落后

我可以看到您在Mac OS X上的ruby 1.8.7补丁级别为174——当前版本的补丁级别在330或以上


此外,如果您要使用非Mac OS X的生产服务器,那么RVM的可移植性可能会更好,因为您可以在这两台机器上安装相同版本的Ruby、Rails和所有gems。

您是否尝试过打开终端窗口并运行
top
,或打开
活动监视器
,然后分别运行每一个,看看CPU何时开始上升?
top
Activity Monitor
都允许您根据应用程序生成的CPU负载进行排序。使用
top-ocpu
并观察最高负载是您运行的应用程序还是应用程序导致运行的其他东西

Rails应用程序在启动时会出现峰值,但在等待传入连接时会稳定下来。如果您有周期性的任务,它正在执行,您应该看到这些任务会导致CPU活动再次增加,然后在任务结束时下降

你使用的是MacBook Pro。你有多少公羊?也许你的应用程序太少了,不得不换掉太多?这会影响系统的整体性能,使CPU工作更困难,导致CPU发热。MacBook Pro的硬盘是为电池效率而设计的,而不是高性能,因此,如果你用大量的数据库I/O访问硬盘,你可能会加热机器,导致应用程序由于记录锁定或某种争用而等待


有很多不同的东西会导致你的机器和应用程序速度变慢,而你并没有给我们太多的工作空间,所以这些是我将要研究的一些基本概念。

我也注意到了这一点,并且能够指出它。。如果我运行top-ocpu,然后打开另一个终端窗口并运行IRB,然后关闭终端窗口而不退出IRB,那么top会突然显示一个大约90%cpu的ruby进程。如果我做同样的实验,但在关闭窗口之前退出IRB,就没有90%的ruby hog


因此,显然我们需要小心不要关闭终端窗口,除非我们已经正确退出了ruby程序。

注意:不要尝试升级Apple安装的ruby。他们把它放在那里供他们使用,你可以破坏依赖它的代码。使用RVM安装新版本,或安装到
/usr/local
/opt
中。偶尔我会看到类似的情况,但这是因为我有一个卡住的Ruby进程,通常是因为我正在调试某个东西,然后关闭了shell/terminal窗口。这台机器会很热,而且看起来更慢。我还没有弄清楚全部原因,但已经发生了很多次了,我做了
top
ps aux | grep ruby
,看看是否有意外的事情在运行。回到问题上来:如果没有源文件或配置文件或
ps
dumps,很难说会出什么问题。在使用Ruby static site generator Nanoc运行本地站点预览后的这几天,我看到了两个孤立的Ruby进程,它们以90%以上的CPU运行。我启动了一个本地(Ruby)预览服务器,然后退出VSCode,而没有先使用
ctrl-C
终止本地服务器。这两个恶意Ruby进程没有对
kill
做出响应,因此运行
ps-ax | grep“Ruby”
来识别罪犯,然后使用活动监视器强制他们两个。本可以使用
kill-9
,但活动监视器是打开的。很棒的帖子。我已经用活动监视器进行了监视,但还不足以真正跟踪。将保持它的开放。今天已经一整天了,我现在使用的应用程序没有出现任何问题。一整天都保持稳定的0.3 CPU。我有8个内存,但这听起来像是可能发生的事情。我注意到,当这种情况发生时,总的来说是一种迟钝,可能就是这样。我会留意的。我还能注意什么?我知道我没有给出太多,但我想知道如何调试这些类型的问题。再次感谢,你成功了。卡住的Ruby进程。我在控制台中调试,陷入了一个糟糕的循环,关闭了控制台,ruby的命中率高达99%。谢谢