【问题标题】:Debugging Stuck Ruby Process - Workling\Starling调试卡住的 Ruby 进程 - Workling\Starling
【发布时间】:2013-05-07 21:17:41
【问题描述】:

我们有一个 Rails 应用程序,大约每 24 小时运行一次机器上的平均负载远远超过 5。它看起来像一个卡住的 Ruby 进程,与运行以管理事件和日历提醒的后台进程特别相关。似乎杀死它并重新启动应用程序可以暂时解决:

dd   6554     1  0 00:38 ?        00:00:15 /usr/local/bin/ruby /usr/local/bin/starling -d -p 15151 -P /u/apps/dd/shared/starling.pid -q /u/apps/dd/shared/starling -L /u/apps/dd/shared/starling.log

还有什么比使用 GDB 调试更好的吗?我在那里没有看到太多有用的信息。

  • Ruby 1.8.7 x86_64
  • Rails 2.3.9
  • Eventmachine 1.0.3
  • 工作 0.4.9.9
  • 八哥 0.10.1
  • CentOS 5.9

谢谢

【问题讨论】:

    标签: ruby eventmachine centos5 workling


    【解决方案1】:

    你列出的几乎所有东西都是超级旧的。您的问题可能很简单,就像所有这些版本发布以来多年来已修复的内存泄漏一样。

    否则,您可以尝试一些 Ruby 配置文件工具,例如 ruby-prof

    【讨论】:

    • 是的,需要升级,但运行良好一年或更长时间。这才刚刚开始。我能够从工作日志中挖掘出来:/usr/local/lib/ruby/gems/1.8/gems/activerecord-2.3.9/lib/active_record/connection_adapters/mysql_adapter.rb:620:in real_connect': Can't connect to MySQL server on '127.0.0.1' (111) (Mysql::Error) from /u/apps/dd/current/vendor/plugins/workling/script/../lib/workling/remote/invokers/threaded_poller.rb:37:in join ' Wokklings 超时后失去连接?可能是 MySQL 配置问题?
    • 可能是。您可以检查 MySQL 是否保持连接的时间过长,从而导致它们都被用完。
    猜你喜欢
    • 1970-01-01
    • 2021-07-02
    • 2016-10-18
    • 1970-01-01
    • 2018-08-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多