gpt4 book ai didi

ruby-on-rails - Ruby 和 Rails 性能问题,服务器

转载 作者:行者123 更新时间:2023-12-04 19:04:33 24 4
gpt4 key购买 nike

我正在运行已部署的 Rails 网络服务器,但遇到内存问题。每次我尝试调用 sendmail 时都会收到 Errno::ENOMEM 错误。当我在我的服务器上运行“top”时,它显示有 2 个 ruby​​1.8 进程正在运行,每个进程都在消化大约 40% 的内存。这是由我的代码泄漏引起的,还是我同时启动了两个 ruby​​ 进程?

这两个进程都由我的部署者帐户运行,然后在我推送到我的生产 git 存储库(使用 pushand)时调用它们。我试图找出这是否是自然的(即服务器需要升级)或者我的设置是否有某种错误。我最近将我的内存从 256 mb 升级到了 512 mb,之前没有这个问题。

问题是阻止访问者创建用户,因为当他们应该收到激活电子邮件时应用程序会抛出错误。

请注意,我在 ubuntu 设置上运行 rails 2.1.0,带有 apache 和乘客。

最佳答案

好的,伙计们,我想这是我必须帮助自己的情况之一,我真的很高兴我做到了。我没有使用任何我链接到的工具。

我通过登录我的服务器。 ssh 并在两个屏幕窗口中运行两个命令:top 和 tail -f/var/www/mysite.com/log/production.log。

我查看了实时日志文件,注意到一个页面请求需要很长时间才能加载——用户可以在该页面中显示他/她的图像,每个用户都由他们的名字来标识,via。 act_as_taggable_on。这个单个请求需要 6 秒。

而且它一直在弹出。我想我看过 6 或 7 次,我决定进一步调查。它总是相同的用户 ID,所以我决定查找用户。事实证明,用户有一个空白名称“”,并且标记的图像是由

Asset.tagged_with(@user.name, :on => "users")

现在在我的应用程序中,有成千上万的 Assets ,并且 Asset.tagged_with("", :on => "users") 将返回所有 Assets ,从而占用了我的内存。

现在我已经处理了用户名称为空的情况,并且所有新用户都需要它。即使没有人帮忙,我仍然对 stackoverflow 心存感激,因为有时它就像问问题来解决问题一样简单。

关于ruby-on-rails - Ruby 和 Rails 性能问题,服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5324699/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com