1

我正在使用 nginx 运行 Rails 应用程序(确切地说是轨道)。启动的 Rails 进程似乎会无限期地持续下去?是不是该停下来了?

我的共享主机分配的 RAM 很少,并且希望能够在 10 分钟后终止 Rails 进程。有没有办法在 nginx 或乘客中做到这一点?

与此同时,我每 10 分钟使用 cron 运行一次这个 bash 脚本:

PID=$(ps ax|grep [R]ails.*lytracks | cut -f2 -d" " | head -n1)

if [ $PID ]; then
    kill -SIGUSR1 $PID
else
    echo Not running
fi
4

1 回答 1

3

你可以这样做,但你不应该这样做。

Rails(在生产模式下)通常不会泄漏内存,因此重新启动进程应该没有效果。
具有合理负载的健康 Rails 应用程序应稳定在大约 30-70MB RAM 并永远保持在那里。

每 10 分钟重新启动一次意味着每 10 分钟您的一些用户将看到一个需要 20 秒才能加载的页面。或者根本无法加载。
您正在尝试像使用 CGI PHP 脚本一样使用 Rails。它不是为了这样做。

如果您有内存泄漏,您应该尝试找出导致它们的原因,然后修复它。

于 2011-04-24T08:16:10.923 回答